1

我在这里有一个工作示例:http: //jsfiddle.net/infatti/esLMh/

为什么“不”不能隐藏?

$('.hide-show input').change(function() {
  $(this).closest('.hide-show').next('.hide-show-yes').toggle(this.value == 'yes');
  $(this).closest('.hide-show').next('.hide-show-no').toggle(this.value == 'no');
});
$('.hide-show input:checked').change(); //trigger correct state onload
4

1 回答 1

1

next仅选择所选元素的下一个直接兄弟(如果它与指定的选择器匹配),根据您的标记,您应该调用两种next方法来选择第二个目标元素。

$('.hide-show input').change(function () {
    $(this).closest('.hide-show')
           .next('.hide-show-yes').toggle(this.value == 'yes')
           .next('.hide-show-no').toggle(this.value == 'no');
});

http://jsfiddle.net/A8ycG/

您也可以使用nextAll方法,但在这种情况下,这种方法过于矫枉过正。

于 2013-04-24T16:35:53.247 回答