我在页面中有一个下拉列表,一个记录列表中的每一行。 我需要在触发每个更改事件的下拉列中更新DIV的内容。
这样的事情:
<div class="price"></div>
<select id="plan[]" name="plan[]" class="sel">
<option value="0" selected="selected">None</option>
<option value="1">One</option>
<option value="2">Two</option>
</select>
$(function() {
$('#plan').change(function(){
$(this).prevAll('.price:first').html('foo bar');
});
});
改变事件永远不会发生,我错过了什么?这是一个fiddle来测试
答案 0 :(得分:2)
尝试使用带有id选择器的通配符。
<强> Live Demo 强>
$(function() {
$('[id^=plan]').change(function(){
$('.price:first').html('foo bar');
});
});
如果您有单个项目而且不需要外卡,您可以使用id选择器这样做。
<强> Live Demo 强>
$(function () {
$('[id="plan[]"]').change(function () {
$(this).prev('.price').html('foo bar');
});
});
答案 1 :(得分:0)
元素的ID为plan[]
而不是plan
,因此事件回调未注册到任何对象。
答案 2 :(得分:0)
id
并非plan
plan[]
。$("#plan[]")
。 plan[]
应该作为选择器,但对我来说似乎也是一个错误。您可能希望将其更改为其他内容。它还意味着页面上有多个{{1}}个id元素,这些元素无效。