#javascript #html
#javascript #HTML
Вопрос:
Я ожидаю, что мой код изменит изображение.
Я убедился, что тег script указан правильно.
var x = document.getElementById("card_1_img");
x.src = "images/1.png"; //the error occurs here
<img id="card_1_img" width="100" height="50">
Ошибка:
Неперехваченная ошибка типа: не удается установить для свойства ‘src’ значение null
Ответ №1:
Ваш скрипт, скорее всего, запускается до загрузки вашего HTML. Попробуйте поместить свой <script>
тег внизу страницы, перед закрытием </body>
:
var x = document.getElementById("card_1_img");
x.src = "images/1.png";
<body>
<img id="card_1_img" width="100" height="50">
<script src="script.js"></script>
</body>
Комментарии:
1. Вы также могли бы поместить тег script в заголовок с атрибутом «defer», если вы используете внешний скрипт.
Ответ №2:
Не уверен, в чем проблема, я воспроизвожу ее.
Возможно, вы поместили тег script в тег head, а тег img не был создан.
var x = document.getElementById("card_1_img");
x.src = "https://hinhanhdephd.com/wp-content/uploads/2015/12/hinh-anh-dep-girl-xinh-hinh-nen-dep-gai-xinh.jpg";
<img id="card_1_img" width="100" height="50">
Ответ №3:
Живой пример переключения изображений:
let chromeImg = "https://www.w3schools.com/images/compatible_chrome.gif";
let firefoxImg = "https://www.w3schools.com/images/compatible_firefox.gif";
function change(browser) {
let img = document.getElementById("browser");
let name = document.getElementById("name");
if (browser.src.includes("chrome")) {
img.src = firefoxImg;
name.textContent = "FireFox";
} else {
img.src = chromeImg;
name.textContent = "Chrome";
}
}
img, p {
margin-left: 50px;
}
<h5>Click on image below:</h5>
<img id="browser" onclick="change(this)"
src="https://www.w3schools.com/images/compatible_chrome.gif">
<p id="name"></p>