检查当前元素在 jQuery 中是否有 class 的子元素
Check if current element has a children with class in jQuery
我想检查一个元素是否有带 class 的子元素。
所以我用了:
$('input:checkbox, input:radio').on('click', function() {
if($(this).children().hasClass('sub-question')) {
alert('Yes');
}
else {
alert('No');
}
});
我的HTML如下:
<div class="form-group">
<label>Item A
<input type="radio">
</label>
</div>
<div class="form-group">
<label>Item B
<input type="radio">
</label>
<div class="row sub-question">
<div class="form-group">
<label class="container_radio">Sub level 1
<input type="radio">
</label>
</div>
</div>
</div>
但是没用。
你能帮我解决这个问题吗?
谢谢。
this
指的是 checkbox/radio 按钮的上下文。您需要遍历到最近的表单组,然后使用带有长度的 .find()
选择器来检查元素是否存在:
if($(this).closest('.form-group').find('.sub-question').length > 0) {
alert('Yes');
}
else {
alert('No');
}
在您的示例中,'input:checkbox, input:radio'
选择的任何元素都有子元素。
您可以使用 .closet 方法
向上遍历其祖先直到找到 .sub-question
元素
$('input:checkbox, input:radio').on('click', function() {
if($(this).closest('.form-group').find('.sub-question').length > 0) {
alert('Yes');
}
else {
alert('No');
}
});
我想检查一个元素是否有带 class 的子元素。
所以我用了:
$('input:checkbox, input:radio').on('click', function() {
if($(this).children().hasClass('sub-question')) {
alert('Yes');
}
else {
alert('No');
}
});
我的HTML如下:
<div class="form-group">
<label>Item A
<input type="radio">
</label>
</div>
<div class="form-group">
<label>Item B
<input type="radio">
</label>
<div class="row sub-question">
<div class="form-group">
<label class="container_radio">Sub level 1
<input type="radio">
</label>
</div>
</div>
</div>
但是没用。
你能帮我解决这个问题吗?
谢谢。
this
指的是 checkbox/radio 按钮的上下文。您需要遍历到最近的表单组,然后使用带有长度的 .find()
选择器来检查元素是否存在:
if($(this).closest('.form-group').find('.sub-question').length > 0) {
alert('Yes');
}
else {
alert('No');
}
在您的示例中,'input:checkbox, input:radio'
选择的任何元素都有子元素。
您可以使用 .closet 方法
向上遍历其祖先直到找到.sub-question
元素
$('input:checkbox, input:radio').on('click', function() {
if($(this).closest('.form-group').find('.sub-question').length > 0) {
alert('Yes');
}
else {
alert('No');
}
});