2011-10-21 115 views
0

我試圖通過跨id的值傳遞給這樣的函數來獲取跨度文本:如何獲得跨度值的jQuery

function getDetails(testDetailId){ 
alert(jq("#"+testDetailId).text()); 
} 

我總是點擊被調用時得到警告無效:

jq("table tr").click(function(){ 
var testDetailId = jq(this).attr("id"); 
getDetails(testDetailId); 
}); 

使用jQuery沒有衝突:

var jq = jQuery.noConflict(); 

一些HTML代碼:

<span id="2">[{"testId":22,"testPerfReports":[]}]</span> 

任何想法?

+0

這將有助於看到您的標記。 –

+0

你的代碼有點奇怪......爲什麼你有這個額外的'getDetails'函數?你已經有了一個元素'this'的引用,所以你可以在事件處理器內部執行'jq(this).text()'(如果這是你想要的,我懷疑它,但這是相同的作爲你在做什麼)。 –

+1

另外,2是無效的id名稱。 http://stackoverflow.com/questions/70579/what-are-valid-values-for-the-id-attribute-in-html – ScottE

回答

0

這是因爲您正在捕獲<TR>的單擊事件。由於它們是表格的一部分,因此它們沒有text()函數。如果您想獲得跨度的文本嘗試執行以下操作:

jq("table tr").click(function(){ 
    var concatenatedValues = $.map($('jq(this).find('span').text(), function (text) { 
       return option.value; 
      }).join(','); 

    alert(concatenatedValues); 
}); 
1

在我看來,無論中,tr元素和span具有相同的ID。

這可能是問題,ID必須是唯一的。