2013-06-18 149 views
4

我設法讓細胞集合在一排點擊此行時如下:如何用jQuery獲取html表格單元格的文本值?

$('.NamesGridClass tbody tr').bind('click', function() { 
    var ch = $(this).children(); 
    alert(ch[0] + ' ' + ch[1]); 
}); 

上述選擇片段成功地顯示:

[對象HTMLTableCellElement] [對象HTMLTableCellElement]

我試過ch[0].html(),ch[0].val(),ch[0].text(),並且得到錯誤。我怎樣才能在這裏獲得我的細胞內容?

回答

3

爲了使用.html(),你需要把這些對象到jQuery的對象:

$(ch[0]).html() 

同樣適用於你想申請任何其他有效的jQuery方法。

+0

爲什麼?只需'ch.html()' – jQuery00

+1

@ jQuery00,當然,這是做同樣的事情和少字符。但重點是'.html()'只適用於jQuery對象。 'ch'和'$(ch [0])'都是jQuery對象; 'ch [0]'不是。 –

6

當你從你的jQuery得到一個數組訪問的商品,請使用本機代碼

ch[0].innerHTML 
+1

這是一個jQuery標記的問題,所以建議OP本地化似乎不合適。是的,你的「答案」是有效的,但它並不能幫助OP理解爲什麼他所嘗試的不是。 –

+0

因爲jQuery'.html()'使用相同的方法。 – jQuery00

+1

再加上一些可能性以確保交叉瀏覽器的兼容性。 '.innerHTML'更快; '.html()'更安全。 –

2

,你回到普通的舊JavaScript元素,沒有jQuery的元素。您可以使用javascript .innerHTML,也可以使用jquery選擇器對值進行雙重包裝。我會推薦使用.innerHTML,因爲它更簡單,所以

$('.NamesGridClass tbody tr').bind('click', function() { 
     var ch = $(this).children(); 
     alert(ch[0].innerHTML + ' ' + ch[1].innerHTML); 
    }); 
+0

我會小心這個建議。如果OP必須支持舊瀏覽器,則使用'.html()'更安全。 –

相關問題