2013-03-18 154 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

相關問題