如何将元素(或文本)与当前选中的复选框放在同一行?

时间:2011-08-23 08:24:25

标签: jquery dom

到目前为止,我有这个让我得到rowIndex,但还没弄明白如何获得同一行中的其他2个字段(可以输入或明文包装在td中):

$('.chkbox').click(function(){
        if($(this).is(':checked')){
            var checkbox = $(this);
            var rowIndex = $(checkbox).closest('tr')[0].rowIndex;
            alert(rowIndex);
        }
    });

2 个答案:

答案 0 :(得分:0)

如果有一个共同的包装元素,那么你可以使用它吗?我想其他元素都被's所包围所以你可以做到:

if ($(this).is(":checked"))
{
    var checkbox = $(this);
    other_elements_in_the_row = checkbox.closest("td").siblings().children();
}


<tr>
    <td>
        <input type="checkbox" />
    </td>
    <td>
        <p>Hello!</p>
    </td>
    <td>
        <input type="text" value=", World" />
    </td>
</tr>

这将返回<p>Hello</p>和另一个输入。

答案 1 :(得分:0)

您可以找到该行,然后将其用于另一个jQuery调用的scope the context,以查找您喜欢的子文本/值。

$('.chkbox').click(function(){
    if($(this).is(':checked')){
        var checkbox = $(this);
        var row = $(checkbox).closest('tr');
        var stuffToUpdate = $(":your_super_awesome_selector",row);
        $.each(stuffToUpdate, function(i,val){ 
         alert( val );
        });
    }
});