2014-02-24 66 views
1

我有以下代碼:獲取SPAN文字

<div>  
    <span id='1' onclick="GetValue();">Some value</span> 
    <span id='2'>Some Span 
    <span id='3'>Want this text</span> 
    </span> 
</div> 

<div>  
    <span id='1' onclick="GetValue();">Some value</span> 
    <span id='2'>Some Span 
    <span id='3'>Want this text</span> 
    </span> 
</div> 

我需要從跨度ID = 3的文字,這是我有:

function GetValue() { 
    var get_text= $(this).next().find("#3").text(); 
    alert(get_text); 
    } 
+3

首先,'this'應該永遠在引號。其次,爲什麼你可以直接使用id來選擇跨度時使用遍歷方法? '$(「#3」)'最後,'this'不是你想象的那樣。 –

+0

對不起,這裏沒有報價。我糾正了它。在任何情況下如何獲得ID = 3文本? – New2JQ

+0

'這不是你想象的那樣。由於您調用函數的方式,this'將指向窗口對象。通過這樣的內聯函數,您需要使用'GetValue(this);'來傳遞span元素以便能夠引用它。 – Kyle

回答

3

首先你可以直接得到使用id選擇這樣

$('#myId').text(); 

id屬性的值不應S中的文本與數字的餡餅。它必須以字符開始,然後可以跟隨數字。

您的代碼的問題在於您的$(this)基本上是一個window對象而不是觸發點擊的span

所以,你需要像這樣

function GetValue(element) { 
    var get_text= $(element).next().find("#three").text(); 
    alert(get_text); 
} 

與HTML

<span id='one' onclick="GetValue(this);">Some value</span> 
    <span id='two'>Some Span 
    <span id='three'>Want this text</span> 
    </span> 

Js Fiddle Demo