2012-11-19 164 views
0

我需要從下表中選擇所有語言。輸出應該是Java,Ruby,Smalltalk,C++。我應該使用什麼jQuery語句?由於從表中選擇特定數據(td)

<table id="languages" border="0" cellspacing="1"> 


<thead> 
    <tr> 
     <th>Language</th> 
     <th>Type</th> 
     <th>Invented</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <td>Java</td> 
     <td>Static</td> 
     <td>1995</td> 
    </tr> 
    <tr> 
     <td>Ruby</td> 
     <td>Dynamic</td> 
     <td>1993</td> 
    </tr> 
    <tr> 
     <td>Smalltalk</td> 
     <td>Dynamic</td> 
     <td>1972</td> 
    </tr> 
    <tr> 
     <td>C++</td> 
     <td>Static</td> 
     <td>1983</td> 
    </tr> 
    </tbody> 
</table> 
+0

這是一堂課練習的一部分。我們在文本框中輸入選擇器,然後運行jQuery。我們被允許使用所有資源,所以我沒有作弊。這是爲最終的項目做好準備。我輸入#languages td:first-child並選擇正確的列。當我嘗試$(「#languages td:first-child」)。text()或#languages td:first-child.text()時,jQuery不顯示結果。下面的所有答案都可以工作。我不知道爲什麼我無法在文本框中輸入它。這可能不足以獲得答案。您可能需要查看文本框的代碼。 –

+0

感謝所有的答案。他們將在未來有所幫助。 –

回答

2

您可以使用map方法:

var lang = $('#languages td:first-child').map(function(){ 
     return this.innerHTML 
}).get() 

lang是要存儲爲一個字符串,你可以使用join方法的值值數組(語言)的情況下, :

lang = lang.join(', '); 

http://jsfiddle.net/hZqHc/

0
var langs = '';  
$.each($('#languages tbody tr'), function(){ 
     langs += $(this).find('td:eq(0)').html() + ', '; 
    }); 
langs = langs.substring(0, langs.length - 2); 
0

這將每個值添加到一個數組:

​var langs = []; 
$('#languages tbody tr').each(function(){ 
    langs.push($(this).find('td:first').text()); 
});​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 
console.log(langs); 

你可以很輕鬆地將它們添加到一個字符串。 請參閱http://jsfiddle.net/fXdkg/瞭解工作片段。