Javascript 查找跨多个节点的文本
我正在寻找一种方法来查找跨越多个节点的文本,就像Firefox那样,例如 对于给定的HTML:Javascript 查找跨多个节点的文本,javascript,jquery,html,firefox,dom,Javascript,Jquery,Html,Firefox,Dom,我正在寻找一种方法来查找跨越多个节点的文本,就像Firefox那样,例如 对于给定的HTML: <p>Lorem ipsum <b>dolor</b> sit amet.</p> Lorem ipsum door sit amet 当我通过ctrl+f搜索文本“ipsum dolor”时,Firefox将选择该文本,即创建范围对象 我知道我可以很容易地在文本节点(vide)中搜索文本,但在上面的示例中不起作用。这将选择所有p元素,其中包含指定为
<p>Lorem ipsum <b>dolor</b> sit amet.</p>
Lorem ipsum door sit amet
当我通过ctrl+f搜索文本“ipsum dolor”时,Firefox将选择该文本,即创建范围对象
我知道我可以很容易地在文本节点(vide)中搜索文本,但在上面的示例中不起作用。这将选择所有
p
元素,其中包含指定为索引的参数的文本。text
方法获取元素的所有文本节点的内容,因此示例中的b
标记无关紧要:
$("p").filter(function() {
return $(this).text().indexOf("ipsum dolor") > -1;
});
看到它工作。正是我要找的。那么你的意思是忽略标记吗?可以这样说-是的,但我还必须有能力创建范围(即选择该文本,以某种方式强调它)。对不起,如果我没有站清楚。是的,在这种情况下它是有效的,但我只想在你的例子中对文本进行ephasize(ipsum dolor)。我认为唯一的方法是开发一些复杂的算法来完成这项工作。在过去八年中,这有没有可能变得更容易呢?whatwg.org上的讨论表明它不在Opera中:-(是的:(.这适用于FF、Chrome、Safari。在IE中,我可以使用TextRange对象。但我在Opera中找不到类似的功能:/