我想按类名选择li
元素,但它不能按我的意愿工作。请参阅以下代码:
var HTML = '<div class="product">' +
'<ul class="listing">' +
'<li class="item">1</li>' +
'<li class="item">2</li>' +
'<li class="item">3</li>' +
'<li class="item">4</li>' +
'<li class="item">5</li>' +
'</ul>' +
'</div>';
alert($(HTML).find('.product .listing .item').html()); //does not work
alert($(HTML).find('.listing .item').html()); //WORKS!
为什么我无法选择商品类?
答案 0 :(得分:1)
由于.product
是所选元素之一,因此它是顶级元素。 .find
会尝试在<{1}}元素1>元素内找到类product
的元素。
也许您正在寻找.filter
:
将匹配元素集合减少到与选择器匹配的元素或通过函数测试。
.product
答案 1 :(得分:0)
jQuery find
查找当前jQuery选择的后代。在这种情况下,$(HTML)
已经是具有div
类的product
,因此.find('.product .listing .item')
会查找前div
的后代,其类为{{ 1}}。在这种情况下,使用product
是正确的。
答案 2 :(得分:0)
我不确定这是否是您正在寻找的东西?
var HTML = '<div class="product">' +
'<ul class="listing">' +
'<li class="item">1</li>' +
'<li class="item">2</li>' +
'<li class="item">3</li>' +
'<li class="item">4</li>' +
'<li class="item">5</li>' +
'</ul>' +
'</div>';
alert($('.item', HTML));