我有一个下面的脚本,并希望定位show / hide div,因为单击复选框而不使用ID并限制每个容器中的隐藏/显示功能。有什么建议?
这是小提琴。 http://jsfiddle.net/45NRN/2/
这是jquery代码。
$('.c-input').live('change', 'checkbox', function() {
var target = $(this).prev('.showHideDiv');
if ($(this).find('input:checked').length == 0) {
target.hide();
} else {
target.show();
}
});
答案 0 :(得分:0)
这应该可以解决问题
$('.c-input').live('change', ':checkbox', function() {
var target = $(this).closest('.c-input').prev().find('.showHideDiv');
if ($(this).find('input:checked').length == 0) {
target.hide();
} else {
target.show();
}
});
一些意见:
'checkbox'
替换为':checkbox'
。您的选择器会找到名称为checkbox
(<checbox\>
的标签,而不是您正在寻找的标签this
是复选框,而不是.c-input
元素。我更改了相关选择器以反映这一点。答案 1 :(得分:0)
或者你可以这样做工作演示: - )http://jsfiddle.net/P8UFL/
.prev
作为另一个div
内的元素 - &gt; wrap
因此,要正确遍历它,您可能需要在prev
然后wrap
find
showHideDiv
HTML也有点无效&gt;使用您的复选框标记在/>
中查看。
.live
从1.7&gt;中删除。 Jquery版;另一种选择是.on
只是一个注释。
希望这有助于:)
<强>代码强>
var target = $(this).prev('.wrap').find(".showHideDiv");