2017-04-08 47 views
1

具體文字我知道如何找到特定文本的DOM元素,但我真的在努力尋找與特定文本 元素,例如:<span class="foo">Special</span>發現在JavaScript中

有例如像下面這個腳本找到與文本的元素?

var txt = window.document.body.innerHTML; 
if (txt.match(/Special/)) { 
    // do something if true 
    alert("Found"); 
} else { 
    // do something if false 
    alert("Sorry"); 

}; 
+1

jQuery? http://stackoverflow.com/questions/7896455/jquery-selector-for-an-element-that-directly-contains-text – mplungjan

+1

你究竟想要完成什麼? [不要使用正則表達式來解析HTML](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) – charlietfl

+2

@mplungjan問題已經存在沒有jQuery標籤。 –

回答

2

你可以例如捕獲文檔中的每個元素,並檢查它們中是否包含給定的文本。

var elems = document.querySelectorAll("*"), 
 
    res = Array.from(elems).find(v => v.textContent == 'Special'); 
 
    
 
    console.log(res ? 'found!' : 'not found');
<span class="foo">Special</span> 
 
<span class="foo">Else</span>

0

使用純JavaScript只是抓住元素的父是這樣的:

var x = this.parentElement.nodeName; //x=="span" 

var x = this.parentElement; //x == <span> object 

使用jQuery只是抓住元素的父是這樣的:

$(this).parents("span"); 

所以,如果你添加上面的內線,如果你可以得到span元素作爲對象或文本。