2010-12-15 85 views
1

是否可以選擇不在另一個嵌套標籤內的標籤的值?jquery選擇器 - 選擇不在另一個嵌套標籤內的值

例如,在下面的代碼中,我想從$('#example')獲得'Text I want to select'文本。

<td id="example"> 
    <a> Text I don't want to select</a> 
    <span> Other text I don't want to select</span> 
    Text I want to select 
    <anyOtherTag> Other text I don't want to select</anyOtherTag> 
</td> 

謝謝。

+0

jQuery沒有幫助功能。這是一個關於這個問題的好主意(我如何選擇帶有jQuery的文本節點)。 http://stackoverflow.com/questions/298750/how-do-i-select-text-nodes-with-jquery – 2010-12-15 19:04:56

回答

3

您可以使用.contents().filter()到文本節點類型(nodeType == 3),像這樣:

var text = $("#example").contents().filter(function() { 
       return this.nodeType == 3; 
      }).text(); 
alert($.trim(text)); 

You can try it out here。因爲.text()獲得所有文本節點,包括其他空格,所以您可能想要$.trim()(因爲IE < 9沒有String.trim())結果就像我上面所述。

+0

謝謝你的好主意。唯一的問題是,我沒有得到它在我的真實例子中工作。事實上,我的表與jQuery插件數據表一起使用,並且可以jeditable,所以當用戶點擊一張表時,我想獲取這些信息。我記錄了我的變量,並且我得到了$(this)正確的td,但是當我做$(this).contents()時它是空的。可能是因爲我在使用數據表插件? – Javi 2010-12-15 19:20:47

+0

@Javi - 這一切都取決於你的上下文,嘗試一個'console.log(this)',看看它發生的時間 – 2010-12-15 19:22:26