Ton*_*ler 326
jQuery有contains方法.这是给你的片段:
<script type="text/javascript">
$(function() {
var foundin = $('*:contains("I am a simple string")');
});
</script>
Run Code Online (Sandbox Code Playgroud)
上面的选择器选择包含目标字符串的任何元素.foundin将是一个包含任何匹配元素的jQuery对象.请参阅以下网址上的API信息:http://docs.jquery.com/Selectors/contains#text
使用'*'通配符需要注意的一点是,你将获得所有元素,包括你的html一个你可能不想要的body元素.这就是为什么jQuery和其他地方的大多数例子都使用$('div:contains("我是一个简单的字符串")')
Bar*_*itz 51
通常,jQuery选择器不在DOM中的"文本节点"内搜索.但是,如果使用.contents()函数,将包含文本节点,则可以使用nodeType属性仅过滤文本节点,使用nodeValue属性搜索文本字符串.
$('*', 'body')
.andSelf()
.contents()
.filter(function(){
return this.nodeType === 3;
})
.filter(function(){
// Only match when contains 'simple string' anywhere in the text
return this.nodeValue.indexOf('simple string') != -1;
})
.each(function(){
// Do something with this.nodeValue
});
Sli*_*lim 29
这将只选择包含"我是一个简单的字符串"的叶元素.
$('*:contains("I am a simple string")').each(function(){
if($(this).children().length < 1)
$(this).css("border","solid 2px red") });
Run Code Online (Sandbox Code Playgroud)
将以下内容粘贴到地址栏中进行测试.
javascript: $('*:contains("I am a simple string")').each(function(){ if($(this).children().length < 1) $(this).css("border","solid 2px red") }); return false;
Run Code Online (Sandbox Code Playgroud)
如果你想抓住"我是一个简单的字符串".首先将文本包装在一个这样的元素中.
$('*:contains("I am a simple string")').each(function(){
if($(this).children().length < 1)
$(this).html(
$(this).text().replace(
/"I am a simple string"/
,'<span containsStringImLookingFor="true">"I am a simple string"</span>'
)
)
});
Run Code Online (Sandbox Code Playgroud)
然后这样做.
$('*[containsStringImLookingFor]').css("border","solid 2px red");
Run Code Online (Sandbox Code Playgroud)
nic*_*ckf 17
如果您只想让节点最接近您要搜索的文本,则可以使用以下命令:
$('*:contains("my text"):last');
Run Code Online (Sandbox Code Playgroud)
如果您的HTML看起来像这样,这甚至可以工作:
<p> blah blah <strong>my <em>text</em></strong></p>
Run Code Online (Sandbox Code Playgroud)
使用上面的选择器将找到<strong>标记,因为这是包含整个字符串的最后一个标记.
只是添加了Tony Miller的答案,因为这让我90%朝着我想要的方向但仍然无效.添加.length > 0;到他的代码的末尾让我的脚本工作.
$(function() {
var foundin = $('*:contains("I am a simple string")').length > 0;
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
345986 次 |
| 最近记录: |