我正在学习jquery,目前正在玩jsfiddle。首先,我观看了复数视频和AppendTo的基本视频。
如果您查看此http://jsfiddle.net/bmNKU/7/,我会尝试从特定列中获取值列表(在本例中为电子邮件ID列表)。
我已经设法获得循环,但它显示了所有行和列的值...我想要的最终输出是来自EmailID列的所有行中的所有电子邮件ID的列表。即,abc @ gmail.com,xyz @ gmail.com等......可以有任意数量的行。
答案 0 :(得分:1)
首先,您应该只在标题行(具有“ID”,“电子邮件”)的行上使用th
,并在包含数据的行上使用td
。然后,您可以选择'#mytable td'
,这将跳过标题列。其次,如果您使用类来标记列,则会更容易。这是一个例子:
HTML:
<table id='mytable' border='1'>
<tr>
<th>ID</th>
<th>Email</th>
</tr>
<tr>
<td class='ID'>1</td>
<td class='Email'>abc@gmail.com</td>
</tr>
<tr>
<td class='ID'>2</td>
<td class='Email'>xyz@gmail.com</td>
</tr>
</table>
然后Javascript:
$(document).ready( function( ) {
$('#btn').click( function( ) {
$('#mytable td.Email').each( function( ) {
alert( $(this).html( ) );
} );
} );
} );
答案 1 :(得分:1)
这是一个使用您的标记创建新的无序列表的版本。应该使用td而不是
$(document).ready(function() {
/* add a new ul to put emails into*/
$('body').append( '<ul id="list"></ul>');
$("#btn").click(function() {
/* start an html string*/
var html = '';
/* loop over table*/
$('tr:gt(0)').each(function() {
var email = $(this).find('th').eq(1).text();
/* concatenate each new element to html string */
html += '<li>' + email + '</li>';
})
/* add new html to DOM*/
$('#list').html(html);
});
});
答案 2 :(得分:0)
首先,让我们清理一下这个标记。其次,考虑你的小提琴的这个版本找到所有ID和电子邮件并将它们添加到一个数组中,你可以点击按钮来做你喜欢的事情(在这个例子中,输出到div):http://jsfiddle.net/bmNKU/10/
答案 3 :(得分:0)
首先,应该调整你的html表。 “th”用于表示表列标题,而不是值。 “td”应该在这里使用。
接下来,通过为每个“td”指定一个类,您可以通过jquery轻松地引用它们。