我正在尝试制作一个下拉菜单,该下拉菜单使用外部JavaScript功能/文件,并根据用户的选择来交替图片,但由于某种原因,图片不会更改。下拉菜单以及默认图像显示,因为它是硬编码的,但图片没有更改。这是我第一次使用JavaScript,所以我确定它充满了错误,但是任何帮助都将不胜感激。我真的不知道我在做什么
这是html:
<!DOCTYPE html>
<html>
<head>
<title>All Seasons</title>
</head>
<body>
<script src = "allseasons.js"></script>
<img id="myimage" src="winter.jpg" alt="current season." />
<select name="seasons">
<option>
Winter
<button onclick="changepic('winter')"></button>
</option>
<option>
Spring
<button onclick="changepic('spring')"></button>
</option>
<option>
Summer
<button onclick="changepic('summer')"></button>
</option>
<option>
Fall
<button onclick="changepic('fall')"></button>
</option>
</select>
</body>
</html>
这是JavaScript:
function changepic(season){
switch (season){
case 'winter': document.getElementById('myimage').src='winter.jpg';
break;
case 'spring': document.getElementById('myimage').src='spring.jpg';
break;
case 'summer': document.getElementById('myimage').src='summer.jpg';
break;
case 'fall': document.getElementById('myimage').src='fall.jpg';
break;
}
最好的做法是在<head></head>
<script>
标签使用本机JavaScript,您可以这样做:
function changepic(season) {
switch (season) {
case 'winter': document.getElementById('myimage').src='https://s1.postimg.org/40ndqhnyfv/image.jpg';
break;
case 'spring': document.getElementById('myimage').src='https://s1.postimg.org/85iz2llc8b/image.jpg';
break;
case 'summer': document.getElementById('myimage').src='https://s1.postimg.org/40ndqhnyfv/image.jpg';
break;
case 'fall': document.getElementById('myimage').src='https://s1.postimg.org/85iz2llc8b/image.jpg';
break;
}
console.log('Current image is : ' + document.getElementById('myimage').src);
}
<img id="myimage" src="https://s1.postimg.org/40ndqhnyfv/image.jpg" id="myimage"/>
<select name="seasons" onChange="changepic(this.value)">
<option value="winter">Winter</option>
<option value="spring">Spring</option>
<option value="summer">Summer</option>
<option value="fall">Fall</option>
</select>
确保图像与脚本在同一文件夹中,或者如果它们在另一个目录中,则该路径是正确的
不建议将按钮放入选择的下拉选项中。您应该在select
元素上聆听Change()事件,然后在此处进行处理。在更改功能中,您可以通过将value
属性添加到所有选项中,可以轻松地访问在下拉列表中选择的option
。
因此,您与change
事件的代码看起来像下面 -
$(document).ready(function() {
$('#seasonsDropdown').change(function() {
var seasonValue = document.getElementById('seasonsDropdown').value;
switch(seasonValue) {
case 'winter': document.getElementById('myimage').src='winter.jpg';
break;
case 'spring': document.getElementById('myimage').src='spring.jpg';
break;
case 'summer': document.getElementById('myimage').src='summer.jpg';
break;
case 'fall': document.getElementById('myimage').src='fall.jpg';
break;
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src = "allseasons.js"></script>
<img id="myimage" src="winter.jpg" alt="current season." />
<select name="seasons" id="seasonsDropdown">
<option value="winter">Winter</option>
<option value="spring">Spring</option>
<option value="summer">Summer</option>
<option value="fall">Fall</option>
</select>