2012-11-19 104 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/了解工作片段。