window 的 find 方法可以跨内联元素边界工作:
Some <em>sample</em> text.
console.log( window.find('le te') ); // true
但它似乎不适用于 block 元素边界:
Some <div>sample</div><div>text</div>.
console.log( window.find('le\r\nte') ); // false
我是否使用了错误的方法或者我需要解决方法吗?
我的目标是在上面的示例中找到“lete”以便操作它。
(不需要正则表达式 - 仅搜索明确的字符串)
最佳答案
还有一种搜索文档正文的 textContent
的替代方法:
Some <div>sample</div><div>text</div>.
console.log(document.body.textContent.search(/le\s*te/)>-1); // true
参见the reference .
正如对您的问题的评论所指出的那样,没有标准它应该如何工作。如果删除 \r
字符,此代码在 Chrome 中有效,但在 FF 中无效:
Some <div>sample</div><div>text</div>.
console.log( window.find('le\nte') ); // true
关于javascript - window.find 跨 block 元素工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15770764/