2013-10-24 16 views
0

我已經捕獲了一個<a>標記並將其作爲jQuery元素。我希望獲得在</a>之前發佈的文本。但問題是在那裏也有一張桌子。獲取錨點內的文本值,但不是其他html元素

<a> 
Text content I want 
<table> 
    <tr> 
    <td> 
     lots of tds 
    </td> 
    </tr> 
</table> 
</a> 

text()讓我的一切,text(":not('table')")顯然是無稽之談,text().not("table")回報什麼。我怎樣才能得到錨中的這個單獨的文本字符串?

+3

'$('a')[0] .childNodes [0] .textContent'應該可以幫到你,但你爲什麼在鏈接中有表? :)) –

+0

,如果它也在表格之後,您可以循環訪問childNodes集合並確定節點是否爲文本 – scrappedcola

+0

ahaha ...不是我... – 1252748

回答

2

你想要做的是獲取元素的文本,而不需要獲取子元素的文本。

基本上,您想克隆<a>元素,選擇它的子元素,刪除子元素(表格),然後捕獲剩餘的文本。

$('a').clone().children().remove().end().text() 

這裏有一個小提琴,我只是驚動了上面的代碼到瀏覽器: http://jsfiddle.net/6pBqY/

我不知道這將適用於所有情況的結果,但它似乎工作只是罰款你的榜樣。

我得到的這個網站,你可以訪問更多的信息,此解決方案: http://viralpatel.net/blogs/jquery-get-text-element-without-child-element/

+0

謝謝。爲什麼這比onetrickpony的解決方案更好。他似乎不那麼複雜。 – 1252748

+0

它更好,因爲它可以從所有文本節點獲取內容。如果你在''之後有任何文字,那將被視爲不同的節點。 –

1

ü必須剛剛從字符串中刪除HTML標籤。我認爲這個變種更好:

var content = document.getElementByTagName('a').innerHTML; var text = $(content).text(); 
相關問題