这可能是一个原始问题,但我是 JS/jQuery 的新手。
我在一个页面上有几个不同的选择框。Each of them has an image next to, that is changed, when a different option is selected. 但是,这仅适用于带有 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>
编辑:我想对 select 和 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>