<ul>
<li id="RadListBox1_i2" class="rlbItem ui-draggable">
<div class="ui-draggable ui-state-default" data-shortid="1007">
<em>ProductId: </em>
<span>110-01-070-10</span>
<br>
<em>ShortID: </em>
<span class="ShortID" data-shortid="1007">1007</span>
<br>
<em>Product Defaul cat: </em>
<span class="spanDefCat" data-defcat="334">334</span>
</div>
</span>
</li>
<li id="RadListBox1_i3" class="rlbItem ui-draggable">
<li id="RadListBox1_i4" class="rlbItem ui-draggable">
</ul>
我需要在
之前找到我正在使用此功能的元素$("#AllProducts li:contains('ShortID:" + Product + "'):contains('" + iCategory + "')").addClass("backDefaultCat");
但是现在你看到我正在使用data-shortid = X sow我需要检查item是否有data-shortid = X和data-defcat = Y
有些人认为是这样的 $("span.ShortID[data-shortid=" + Product + "] span.spanDefCat[data-defcat=" + iCategory + "]").parents("li:first").addClass("backDefaultCat");
我可以将它合并。
答案 0 :(得分:2)
尝试
$("#AllProducts li").filter(function(){
return $(this).has('[data-shortid="' + Product + '"]').length > 0 && $(this).has('[data-defcat="' + iCategory + '"]').length > 0
}).addClass("backDefaultCat");
演示:Fiddle
或者
$('#AllProducts li:has(span.ShortID[data-shortid="' + Product + '"]):has(span.spanDefCat[data-defcat="' + iCategory + '"])').addClass("backDefaultCat");
演示:Fiddle
答案 1 :(得分:1)
尝试替换下面的行。刚刚添加了您忘记的,
:)
$("span.ShortID[data-shortid=" + Product + "], span.spanDefCat[data-shortid=" + iCategory + "]").parents("li:first").addClass("backDefaultCat");
更新了您的jsFiddle
,请检查。
再次更新