2012-07-22 242 views
0

可能重複:
Getting text within element excluding decendantsjQuery選擇 - 不選擇內部元素

我試圖讓使用1所選擇的元素數據的一部分,並且只能通過文字()方法。 可以說,我有以下的html代碼:

<div class="price"> 
    <span class='old_price'>1150</span><br /> 
    920 
</div> 

在這種情況下,我只想要得到的920(不牛逼1150)。使用一個選擇器可以做到這一點嗎?

例如,如果我做div.price.text(),我會得到兩個價格。所以通過「一行」我的意思是div.price.not("span.old_price").text()或類似的東西。

回答

0

來自jQuery API文檔Description: Get the combined text contents of each element in the set of matched elements, including their descendants.所以即使你只選擇了外部元素,你也將得到兩個數字作爲使用text()的結果的一部分;

所以,你想要的是過濾掉一切,但文本節點

$(".price").contents().filter(
    function() { 
     return this.nodeType === 3; // text node 
    } 
).text(); 

你可能要修剪的空白(在這種情況下,你可以用與$.trim()

+0

正如我所說的上面的代碼,我只需要用選擇器來執行它,我不能使用函數等。 – ItayD 2012-12-19 15:53:10

+0

@ItayD選擇器本質上是一個函數,至少在你可以創建自己的選擇器的範圍內,所以我沒有看到這個限制的要點 – 2012-12-19 18:18:27