0
 <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 我需要检查项目是否有 data-shortid=X 和 data-defcat=Y

有些人是这样想的

  $("span.ShortID[data-shortid=" + Product + "] span.spanDefCat[data-defcat=" + iCategory + "]").parents("li:first").addClass("backDefaultCat"); 

我只是可以正确地组合它。

4

2 回答 2

2

尝试

$("#AllProducts li").filter(function(){
    return $(this).has('[data-shortid="' + Product + '"]').length > 0 && $(this).has('[data-defcat="' + iCategory + '"]').length > 0
}).addClass("backDefaultCat");

演示:小提琴

或者

$('#AllProducts li:has(span.ShortID[data-shortid="' + Product + '"]):has(span.spanDefCat[data-defcat="' + iCategory + '"])').addClass("backDefaultCat");

演示:小提琴

于 2013-08-05T09:37:22.770 回答
1

尝试用下面的行替换。刚刚添加,了你忘记的:)

$("span.ShortID[data-shortid=" + Product + "], span.spanDefCat[data-shortid=" + iCategory + "]").parents("li:first").addClass("backDefaultCat");

http://jsfiddle.net/SBhMV/7/

更新您的jsFiddle请检查。

http://jsfiddle.net/SBhMV/9/

再次更新

于 2013-08-05T09:37:10.343 回答