jQuery:找到与选择器最接近的元素“*:contains('text')”

时间:2014-01-11 20:47:40

标签: jquery

在此问题jQuery: why does :contains selector return undefined?的基础上,它只返回包含文本及其他所有内容的<html>

我使用通配符选择器,因为我不知道包含文本的最近父级是什么样的。如何找到包含文本的最接近元素?我正在使用:contains选择器,以便在总结时可以找到带有文本和子文本节点的元素与:contains参数中的值匹配。

HTML:

<ul>
    <li class="youarehere"><a id="nav-questions" href="/questions">Questions</a></li>
    <li><a id="nav-tags" href="/tags">Tags</a></li>
    <li><a id="nav-users" href="/users">Users</a></li>
    <li><a id="nav-badges" href="/help/badges">Badges</a></li>
    <li><a id="nav-unanswered" href="/unanswered">Unanswered</a></li>
</ul>

预期:$("*:contains('Questions Tags Users Badges Unanswered')")返回<ul>,这是包含所有文字的最近的父级,而不是<html>

1 个答案:

答案 0 :(得分:1)

如果你想要最近的父母,那么你需要使用正确的选择方法:

var parent = $(this).closest(":contains('Questions Tags Users Badges Unanswered'"));