如何通过 jQuery 将 :contains(text) 与任何文本一起使用
使用 jQuery,可以使用:
$(":contains(hello)")
它将返回包含文本“hello”的任何匹配元素。
我希望能够匹配任何文本,尤其是“你好:)”。
$(":contains(hello :))") // Doesn't work
$(":contains('hello :)')") // Doesn't work
$(":contains('hello :\)')") // Doesn't work
如何使用 jQuery 查找包含“hello :)”的元素?
With jQuery, one can use:
$(":contains(hello)")
It will return any matching element that contains the text "hello".
I want to be able to match any text, especially "hello :)".
$(":contains(hello :))") // Doesn't work
$(":contains('hello :)')") // Doesn't work
$(":contains('hello :\)')") // Doesn't work
How do I find elements that contains "hello :)" with jQuery ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
请参阅此答案了解具体方法。
它基本上涉及
.filter
来绕过 已知的:contains bug
:
实时示例。
请注意,即使只有一个元素包含该文本,对其结果执行
.length
也可能会得到一个大于 1 的值,因为该元素的父元素也会匹配。See this answer for how.
It basically involves
.filter
to get around a known:contains
bug:Live example.
Note that performing
.length
on the result of this may give you a value greater than 1 even if only one element contains that text, because the element's parents will also match.这似乎是一个未解决的错误: http://bugs.jquery.com/ticket/5482
Jakkob 的声明如下:
This seems to be an open bug: http://bugs.jquery.com/ticket/5482
And there is this statement of jakkob:
来自 jQuery:
所以请尝试此操作
from jQuery:
so try this
快速代码:
您可以这样做:
注意: contains() 接受正则表达式(这意味着您需要转义正则表达式需要转义的任何内容)
Quick code:
This way you can do:
Note: contains() accept a regular expression (meaning you need to escape whatever needs to be escaped for a regexp)