javascript - window.find 跨 block 元素工作?

标签 javascript dom

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/

相关文章:

c++ - 使用 COLLADA DOM 将 COLLADA 文档输出为字符串

javascript - IE 中的 document.write

php - 使用简单的 html dom 获取 url-data 属性

javascript - Jquery inputmask 动态屏蔽特定电子邮件域

javascript - 对特定的 PHP 函数进行 jQuery AJAX 调用

javascript - 使用 'clipboard.js' 不带按钮将文本复制到剪贴板

javascript - 时区转换

javascript - 在 D3 中将地理形状缩放至相似大小

android - 有什么方法可以访问 Android 的 WebView 中的 DOM 结构?

javascript - 通过类名在 Jquery 选择器中选择元素并将其转换回 Jquery 对象