2015-09-16 99 views
0

我想獲取tr行中的單元格文本。 tr行有class attr和一個數據attr。 我選擇TR行作爲如何從jquery獲得tr的第一個td文本

var k = $('tr[class="BatchTypesRow"][data-rowselected="true"]'); 

然後

var m = k.children("td:first");  
var sBtype = m.text();  
alert(sBtype);  

的sBtype包含了所有細胞的行中的文本。 我試過

var sBtype = m[0].text();  

發現了一個異常。

那麼這裏有什麼問題? 如果該單元格不是該行中的第一個單元格,該怎麼做?

+1

分享你的HTML示例以及 –

+0

和什麼是例外? –

回答

1

這裏,m本身就是行的第一td因爲var m = k.children("td:first");

所以m.text()不會給整行只要td:first選擇。如果你使用.children("td")那麼你會得到m.text()整行。所以在你的代碼中,

var sBtype = m.text();  
alert(sBtype); 

實際上會給第一個單元格內容。

如果不是第一個單元格,您將使用var m = k.children("td");刪除關鍵字first。在這種情況下,m [0]將具有第一個單元格,m [1]秒等等。

如果我錯了,糾正我,我相信這是你如何得到異常,使用m[0].text()會引發你一個異常,因爲m [0],m [1]不是JQuery對象。它們是HTMLTableCellElement對象。要使用它作爲JQuery對象,你將不得不使用$(m[1]).text()

如果你知道它的w.r.t序列中選擇哪一個元素,你可以使用

var m = k.children("td:nth-child(n)"); 

在這裏您可以用數字代替n,這樣你就會選擇該行的nth td

希望這會有所幫助。

0
$('tr.selected td:first-child').text(); 
0

首先,選擇TR內說謊,你可以使用類ATTR

$( 「tr.BatchTypesRow」)

然後向下遍歷樹的text.for得到TD即其子

$(「tr.BatchTypesRow」)。兒童(「TD」)

,因爲你需要的第一個孩子,是第一個TD,你通過選擇TR穿越,也可以是進一步寫爲

$(「tr.BatchTypesRow」)。兒童(「TD:第一」)

如果文本位於所選TD

$("tr.BatchTypesRow").children("td:first").children("label").text(); 

內的標籤內會給你想要的文字。

相關問題