这可能是一个原始问题,但我是JS/jQuery的新手。选项选择onchange
我在页面上有几个不同的选择框。当选择不同的选项时,它们中的每一个都在旁边有一个图像,该图像被更改。然而,这只适用于getElementById的一个选择框,但对于其中的许多选项来说它不适用于getElementByClassName,我也不想使用这种方法,因为我读它不受IE8.0支持。有没有办法让这个工作在一个页面内的多个选择框中使用,而不是为每个选择框使用单独的ID?
您的帮助将不胜感激。这是我的代码。
<img id="color" src="content/1.png">
<select class="mod_select" name="colors" id="changingColor" tabindex="1" onchange="changeimg()">
<option value="content/1.png">1 thing</option>
<option value="content/2.png">2 thing</option>
<option value="content/3.png">3 thing</option>
</select>
<script type="text/javascript">
function changeimg(){
document.getElementById('color').src=document.getElementById('changingColor').value
}
</script>
编辑:我想使用选择和img的类。然后在一个div内有一个特定的选择选项可以改变它旁边的img。那可能吗?
编辑2:这个伟大的工程:
$('.mod_select').on('change', function() {
var $this = $(this);
var img = $this.prev(); // assuming select is next to img
img.attr('src', $this.val());
});
但是,IMG是不相邻的选择,我想我应该用prevSibling,但我不知道怎么样。阅读jQuery API并没有多大帮助。 我真的很感谢你的帮助!这里是我的html:
<img src="content/1.png"> <!-- the image that needs to be updated with new select option -->
<p>text</p>
<div class="moreinfo info_icon left"></div> <!-- the div that triggers qTip -->
<div class="moreinfo_text"> <!-- this is a hidden div this that is shown by qTip with -- text: $(this).next('.moreinfo_text') -->
<img src="content/qtip_img.jpg">
<p>qTip text</p>
</div>
<select class="mod_select" name="colors" tabindex="1">
<option value="content/1.png">1 thing</option>
<option value="content/2.png">2 thing</option>
<option value="content/3.png">3 thing</option>
</select>
元素上的'id'属性应该是唯一的,所以它们应该有单独的ID。如果你想将多个元素组合在一起,那么你应该使用一个类。 –