用于元素数组的jQuery .change事件

时间:2013-01-16 15:42:09

标签: jquery

我在页面中有一个下拉列表,一个记录列表中的每一行。 我需要在触发每个更改事件的下拉列中更新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来测试

3 个答案:

答案 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元素,这些元素无效。