考虑以下 HTML 代码:
<div class="foo" id="obj">
I should be changed red
<div class="bar" style="color:black;">
I should not be changed red.
<div class="foo">I should be changed red.</div>
</div>
</div>
如何选择DOM元素obj
和一个表达式的所有子元素,包括可能的obj
本身?我需要类似于“选择后代”的东西,但也包括父元素,如果它匹配该表达式。
var obj = $("#obj")[0];
//wrong, may include siblings of 'obj'
$(".foo", $(obj).parent()).css("color", "red");
//wrong -- excludes 'obj'
$(".foo", obj).css("color", "red");
//correct way, but it's annoying
var matches = $(".foo", obj);
if ($(obj).is(".foo")) matches = matches.add(obj);
matches.css("color", "red");
有没有更优雅的解决方案?
findAndSelf
扩展,正如你建议的那样供所有人使用。干杯。 - iCollect.it Ltd