查找其直接后代包含文本的元素

Posted

技术标签:

【中文标题】查找其直接后代包含文本的元素【英文标题】:Find element whose immediate descendant contains text 【发布时间】:2016-09-29 04:08:36 【问题描述】:

我有:

<div id="new">
  "hello new"
    <div id="some">
      "hello some new man"
    </div>
</div>

我想选择其直接后代具有文本“hello some”的 div。我试过了:

$('div:contains("hello some")')

这显示了 id 为新的和一些的 div

我有许多具有不同 id 的 div,但包含文本“hello some”。我想选择所有这样的 div 的

【问题讨论】:

***.com/a/7896669/1719752 我希望应该有更简单的东西 ***.com/questions/2890334/contains-for-multiple-words 【参考方案1】:

您可以为此目的使用XPath,它是text() 函数。

function getElementByXpath (path) 
  return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;

// get any element containing this text
getElementByXpath('//*[contains(text(), "hello some")]')
hello some

【讨论】:

以上是关于查找其直接后代包含文本的元素的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 遍历 – 后代

jQuery遍历-后代

XPath / XQuery:在节点中查找文本,但忽略特定后代元素的内容

包含(后代)选择器

jquery内容筛选

js DOM知识总结