Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 查找跨多个节点的文本_Javascript_Jquery_Html_Firefox_Dom - Fatal编程技术网

Javascript 查找跨多个节点的文本

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元素,其中包含指定为

我正在寻找一种方法来查找跨越多个节点的文本,就像Firefox那样,例如

对于给定的HTML:

<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中找不到类似的功能:/