1

这是我的代码

$("#AllProducts li id:contains('" + serial + "')").addClass("backRed");

我的跨度背景变成了红色,但我需要我的整个 li 才能得到背景红色

<li class="ui-draggable" value="301" style="display: list-item;">
<id>ID:301</id>
<br>
14k Gold Hebrew Name Necklace
<br>
Serial:( 101-01-001-01)
<br>
DefaultCat:( 313)
</li>

一切正常,但任何人都知道为什么这个产品也会返回红色吗?他的 li id 不是 303,但默认值是 303,但我检查了 $("#AllProducts li id:contains()... 不是整个 li

<li class="ui-draggable backRed" value="1163" style="display: list-item;">
<id>ID:1163</id>
<br>
Personalized Double Thickness Silver Name Necklace
<br>
Serial:( 101-01-073-04)
<br>
DefaultCat:( 303)
</li>
4

2 回答 2

3

使用最接近

$("#AllProducts li span:contains('" + serial + "')").closest('li')
     .addClass("backRed");

$("#AllProducts li").has("span:contains('" + serial + "')")
      .addClass("backRed");

但在我看来,第一个更清晰,并且不使用中间可能很重的集合。

于 2013-07-02T10:15:55.070 回答
3

要选择父级,请使用:

$("#AllProducts li span:contains('" + serial + "')").parent().addClass("backRed");

如果您希望父母li使用.parent('li');

于 2013-07-02T10:15:59.867 回答