是否可以在 Safari/Firefox/Chrome 中使用 Javascript 在特定的 div 容器中搜索给定的文本字符串。我知道你可以使用window.find(str)
搜索整个页面,但是否可以将搜索区域限制为仅在 div 内?
Thanks!
一旦你查找你的div
(你可以通过document.getElementById http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-getElBId或任何其他 DOM 函数,各种规格在这里 http://www.w3.org/DOM/DOMTR),您可以使用textContent http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#Node3-textContent or innerText http://msdn.microsoft.com/en-us/library/ie/ms533899%28v=vs.85%29.aspx找到该文本div
。然后你可以使用indexOf
找到其中的字符串。
或者,在较低级别,您可以使用递归函数来搜索窗口中的所有文本节点,这sounds比实际情况复杂得多。基本上,从你的目标出发div
(这是一个Element http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-745549614),你可以循环遍历它的childNodes http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-1451460987并搜索他们的nodeValue
字符串(如果它们是Text http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-1312295772s)或递归到它们(如果它们是Element
s).
诀窍是天真的版本将无法找到"foo"
在此标记中:
<p><span>fo</span>o</p>
...因为两者都没有Text
节点有一个nodeValue
with "foo"
在其中(其中一个有"fo"
, 另一个"o"
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)