我有这个HTML标记:
<div>
<ul>
<li>
<div id="FieldWrap18" class="fieldSettings full" data-dependent="{19}" data-dependson="">
<input id="Field_0_18" name="Field_0_18" type="checkbox" value="true">
<input name="Field_0_18" type="hidden" value="false">
Yes
</div>
</li>
<li>
<div id="FieldWrap19" class="fieldSettings full" data-dependent="" data-dependson="">
<input id="Field_0_19" name="Field_0_19" type="checkbox" value="true">
<input name="Field_0_19" type="hidden" value="false">
No
</div>
</li>
</ul>
</div>
我试图选择&#34;是&#34;使用此选择器的字段(我必须使用data-dependent
属性)
$('div:not([data-dependent=""]) input:not([type="hidden"])').on('change', function () {
alert('Yep!');
});
然而,它正在选择input
个字段。我如何只选择non-empty data-dependent non-hidden input
?这是一个带有非工作代码的jsFiddle。我知道选择器因为父div
甚至没有data-dependent
属性而中断,但我不知道如何构建我的选择器以在抓住时忽略该div一个具有该属性的人。谢谢你的帮助。
答案 0 :(得分:1)
尝试此选择器: -
$(document).ready(function () {
$('div[data-dependent]')
.not('[data-dependent=""]')
.find('input:not([type="hidden"])')
.on('change', function () {
alert('Yep!');
});
});
答案 1 :(得分:0)
这是你可以做到的一种方式。
$('input[type="checkbox"]').on('change', function () {
var parent = $(this).parent();
if(parent.data().dependent.length > 0)
alert('you clicked YES!');
else
alert('you clicked NO!');
});
这是jsfiddle工作。