2013-03-18 151 views
-1

有没有办法查看一个字符串是否包含在一个元素中?具体是一个链接?如何检查一个DOM元素是否包含一个字符串

例如:

<a href="#">Some text foo_string more text</a> 

将返回 “a” 作为所述元件。 jQuery或PHP - 无关紧要。谢谢!

澄清:

我想知道的是,包含foo_string的元素。不是一个元素是否包含字符串。

+3

你看过jQuery吗? – castis 2013-03-18 14:25:25

+0

你的意思是你想要包含你正在寻找的字符串的dom元素?或只是元素的名称? – 2013-03-18 14:26:58

+0

只是元素马克。谢谢! – 2013-03-18 14:27:43

回答

5

检查如果元素包含字符串

要检查元素是否符合此标准,尝试了jQuery contains选择:

if ($('#some-element').is(':contains("foo_string")')) { 
    // Do something... 
} 

注意这个选择是区分大小写。


选择包含元素(S)(S)的字符串

要选择符合此标准的元素,只是,你会与选择作为参数传递给主jQuery函数任何其他选择器:

var element_with_foo = $(':contains("foo_string")'); 

请记住,建议限制选择的范围,否则将应用于整个DOM。

+0

这不是我所问的。正如我在问题中所添加的,我想知道包含特定字符串的元素。所以它可能是div,a或其他。 – 2013-03-18 14:34:15

+0

@jeanpaul更新了答案。 – Boaz 2013-03-18 14:36:20

+0

谢谢波阿斯,你会碰巧知道是否有一个PHP DOMDocument的等价物? – 2013-03-18 14:59:30

1

您可以使用innerText或textContent DOM属性和JavaScript的正则表达式方法。

例如

var el = document.getElementById('my-link'); 
var txt = el.innerText; 
return txt.match(/str/); 

在这里使用jQuery更简单,但这是一个纯粹的JavaScript解决方案。

1

试试这个...

if ($('a').html().indexOf('foo_string') != -1) // doSomething

2

使用jQuery

if($('a').text().length < 1){ 
    alert("empty") 
}else{ 
    alert("not"); 
} 

更新

$(":contains('Some text foo_string')"); //this get all the element with the text in it 

u可以使用.prop('tagName')获取标签名..

fiddle here updated fiddle here

相关问题