javascript - 使用 javascript 通过 HTML 搜索确切的子节点

标签 javascript firefox dom

getElementsByTagName("*")将为您提供 Depth First Search in Pre-order 中的子节点。问题是,如果我在节点的 HTML 中搜索字符串,则无法判断该字符串是否在 getElementsByTagName("*") 将返回的另一个子节点中。 。那么,有没有办法从叶子到根迭代节点呢? 最有可能的是DFS-Post order会成功的!

例如:

  <div id=""master">
    <div id="id1">
      <div id="id2">
        <span>text</span><i>more text</i>
      </div>
    </div>
  </div>

如果我们正在搜索 <i>more text</i> ,那么结果的第一个元素的innerHTML以及所有后续元素将匹配。但我只希望确切的 child 与字符串匹配。如果我们从叶子开始,那么我们可以 break找到文本后离开。

还有其他想法吗?

最佳答案

如果您必须实际执行此文本搜索,请确保 nodeType === 3然后检查nodeValue对于字符串。您实际想要返回的节点是该节点的 parentNode

不过,我认为总的来说这是一个坏主意,如果您希望所述元素的内容发生更改(这就是您搜索它的原因),请附加一个事件处理程序来监听更改。

关于javascript - 使用 javascript 通过 HTML 搜索确切的子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17623411/

相关文章:

java - 搜索从 xml 文档创建的 DOM 并将值复制到电子表格/csv

javascript - 是否可以使用 JavaScript 转储 DOM 并保留 CSS 效果和布局?

javascript - 根据背景颜色更改汉堡菜单的颜色

javascript - ui-sref 从 Controller 传递参数

html - 如何删除聚焦按钮文本周围的白色虚线边框

javascript - 这个 === Firebug 中的窗口

javascript - 在 Firefox 中页面完全加载之前无样式的文本闪烁

javascript - JQuery 中 .hide() .show() 的淡入淡出效果

javascript - IE7 不加载 javascript 文件

jquery找到最接近的没有类的前一个兄弟