jQuery子选择器无法找到DOM对象

时间:2018-05-08 22:21:46

标签: javascript jquery

我有以下标记:

<span class="checkbox group_delivery checkbox_checked">1</span>
<span class="checkbox group_delivery">2</span>
<span class="checkbox group_delivery">3</span>

我尝试检查checkboxgroup_delivery内是否至少有一个checked

所以我查找了一个包含group_deliverycheckbox_checked类的标记。

我已尝试过以下几项:

$('.checkbox_checked', $('.group_delivery')) - 0 results
$('.group_delivery').find('.checkbox_checked') - 0 results

但如果我使用$('.group_delivery')遍历.each对象,我可以找到所需的范围:

    $('.group_delivery').each(function(i,o) {
        if ($(o).hasClass('checkbox_checked')) {
            console.log('Found in each loop');
        }
    });

您可以在此Fiddle中查看。

1 个答案:

答案 0 :(得分:4)

.find(以及$(selector, parent)表单)会查找后代,即它会在 {{}内查找.checkbox_checked元素 1}}元素。

但是,您希望找到具有两个类的元素:

.group_delivery

或者您可以使用.filter

$('.group_delivery.checkbox_checked')
  

但如果我使用$('.group_delivery').filter('.checkbox_checked') 遍历$('.group_delivery')对象,我可以找到所需的范围:

因为.each检查元素本身是否具有此类。