Я пытаюсь написать простую функцию на странице HTML, которая отображает изображение, и есть несколько кнопок, которые меняют изображение. Я использовал команду «document.getElementById('myImage').src=", чтобы изменить его, но нет изображение отображается после того, как я нажимаю на него. То же изображение загружается правильно с использованием тега. Та же кнопка работает, если я использую прямую ссылку, взятую из Google. Ниже я вставил код. Любые предложения приветствуются.
<!IDOCTYPE HTML>
<html>
<body>
<h2> This page shows changing emotions using various buttons </h2>
<img id = "image" src = "path\angry.jpg" style = "width:100px">
<button onclick = 'document.getElementById("image").src = "path\envy.jpg"'>Envy</button>
<button onclick = 'document.getElementById("image").src = "path\angry.jpg"'>Angry</button>
<button onclick = 'document.getElementById("image").src = "path\sad.jpg"'>Sad</button>
<button onclick = 'document.getElementById("image").src = "path\embarassed.jpg"'>Embarassed</button>
<button onclick = 'document.getElementById("image").src = "path\happy.jpg"'>Happy</button>
<button onclick = 'document.getElementById("image").src = "path\anxiety.jpg"'>Anxiety</button>
</body>
</html>
Пробовал ссылки из Google, работают, но локальные изображения не работают в функции нажатия. Спасибо!
Проблема, с которой вы столкнулись, скорее всего, связана с обратными косыми чертами (), используемыми в путях к файлам. В HTML и JavaScript пути к файлам должны использовать косую черту (/). Обратная косая черта не является допустимым разделителем путей в URL-адресах.
<!DOCTYPE HTML>
<html>
<body>
<h2> This page shows changing emotions using various buttons </h2>
<img id = "image" src = "path/angry.jpg" style = "width:100px">
<button onclick='document.getElementById("image").src = "path/envy.jpg"'>Envy</button>
<button onclick='document.getElementById("image").src = "path/angry.jpg"'>Angry</button>
<button onclick='document.getElementById("image").src = "path/sad.jpg"'>Sad</button>
<button onclick='document.getElementById("image").src = "path/embarrassed.jpg"'>Embarrassed</button>
<button onclick='document.getElementById("image").src = "path/happy.jpg"'>Happy</button>
<button onclick='document.getElementById("image").src = "path/anxiety.jpg"'>Anxiety</button>
</body>
</html>
Не используйте встроенные обработчики событий. Подробности прокомментированы в примере.
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8">
<meta name = "viewport" content = "width=device-width, initial-scale=1">
<title></title>
<style>
img {
display: block;
width: 300px;
height: 300px;
margin: 20px auto;
cursor: pointer
}
</style>
</head>
<body>
<img src = "https://i.ibb.co/bBGX3Sq/static.gif">
<script>
// Assign a counter outside of function
let i = 0;
// Have the URLs of the the images in an array
const pix = [
"https://i.ibb.co/c1PtcM7/matrix1.gif",
"https://i.ibb.co/FHRS8Gx/stars.gif",
"https://i.ibb.co/bBGX3Sq/static.gif"
];
// This is the callback function that will be invoked at every click
function changeSrc(e) {
// Increment the counter
i++;
// If the count equals to or exceeds the number of URLs in pix array...
if (i >= pix.length) {
// Reset the counter back to 0
i = 0;
}
// Change the src of the <img> to the URL at the index of "i" in array pix
this.src = pix[i];
}
document.querySelector("img").onclick = changeSrc;
</script>
</body>
</html>
Пробовали ли вы использовать пути с «/» вместо «\"?