使用jQuery在表行中查找子节点的值

时间:2014-04-01 18:18:48

标签: javascript jquery

我有

$('#Row1').html() = '<tr><td><input type="checkbox"  /></td>'+
                    '<td>One</td>'+
                    '<td>Two</td>'+
    '<td>Three</td>'+
    '<td>Four</td>'+
    '<td>Five</td>'+
    '<td>Six</td>'+
    '<td>Seven</td>'+
    '<td>Eight</td>'+
    '<td>Nine</td>'+                
    </tr>';

我想要访问除第一个单元格之外的所有值。 我可以使用$('#Row1').children().siblings().next().html()访问,依旧每次添加next()

在大量单元格的情况下,是否有更有效的方法来执行此操作。

6 个答案:

答案 0 :(得分:2)

首先,html的工作方式如下:

$('#Row1').html('<tr><td><input type="checkbox"  /></td>'+
                '<td>One</td>'+
                '<td>Two</td>'+
'<td>Three</td>'+
'<td>Four</td>'+
'<td>Five</td>'+
'<td>Six</td>'+
'<td>Seven</td>'+
'<td>Eight</td>'+
'<td>Nine</td>'+                
'</tr>');

即:这是一个功能。

然后,要回答您的问题,您可以使用.not()

$('#Row1').children().not(':first').html();

但是,孩子们选择tr。所以你真的想要:

$('#Row1').find('td').not(':first').html();

答案 1 :(得分:2)

<强> http://jsfiddle.net/dr2cs/2/

 $(document).on('click','.check',function(e) {
     if($(this).is(':checked')) {
         $('#Row1').find('td:gt(0)').each(function(){
             $('#values').append($(this).text()+'<br />');
         })
     } })

 var domnode = '<tr><td><input type="checkbox" class="check" /></td>'+
                     '<td>One</td>'+
                     '<td>Two</td>'+
     '<td>Three</td>'+
     '<td>Four</td>'+
     '<td>Five</td>'+
     '<td>Six</td>'+
     '<td>Seven</td>'+
     '<td>Eight</td>'+
     '<td>Nine</td>'+                
     '</tr>'; $('#Row1').html(domnode);

尝试这样的事情;)

答案 2 :(得分:0)

首先你必须使用

$('#Row1').html('<tr><td><input type="checkbox"  /></td>'+
    '<td>One</td>'+
    '<td>Two</td>'+
    '<td>Three</td>'+
    '<td>Four</td>'+
    '<td>Five</td>'+
    '<td>Six</td>'+
    '<td>Seven</td>'+
    '<td>Eight</td>'+
    '<td>Nine</td>'+                
    '</tr>');

要访问所有单元格,您需要先做

 $("#Row1 td:not(:first)").each(function(){

        console.log($(this).html());
});

答案 3 :(得分:0)

添加行的示例是错误的。您不会将<tr>添加到行html。

您可以使用:gt() selector

$("#Row1 td:gt(0)")

$("#Row1").find("td:gt(0)")

答案 4 :(得分:0)

在没有进一步遍历的单个选择器中,您可以执行此操作:

$('#Row1 tr td:not(tr td:first)');

答案 5 :(得分:0)

您可以使用基于索引的选择器:gt(0)来获取单元格,然后使用each()迭代它们:

$('#Row1 td:gt(0)').each(function(){
    console.log($(this).html())
});

DOCUMENTATION: INDEX SELECTOR

DOCUMENTATION: EACH()