使用JQuery更改下一个文本

时间:2012-07-28 15:15:30

标签: jquery html-table jquery-selectors row

我有网格行方案,如:

<tr>
    <td>110</td>
    <td><input class="client-chb" name="checkedRecords" type="checkbox" value="110" title="checkedRecords"></td>
    <td>Some name</td>
    <td>Some other name</td>
    <td>1.1.2012</td>
</tr>

我有一个功能,我可以获得所有选中的复选框,获取它们的值并通过ajax发送到服务器。

但我想在我发布ajax帖子之前获得3&amp; 4 <td>并更改文字样式,如:

<td><b>Some name</b></td>

我需要反过来。或者更清楚的是,这是“标记为已读”和“标记为未读”的消息收件箱。

function MarkAsUnread() {
    var idata = new Array();
    $(".client-chb:checked").each(function() {
        var test = $(this);
        // maybe here, test -> find next td -> change text
        idata.push($(this).val());
    });
    //other logic
}

2 个答案:

答案 0 :(得分:2)

您可以尝试以下操作:

function MarkAsUnread() {
    var idata = new Array();
    $(".client-chb:checked").each(function() {
        $(this).closest('tr').find('td').slice(2, 4).wrapInner('<b/>')
        idata.push($(this).val());
    });
}

答案 1 :(得分:0)

你已经迭代了包含在TD中的输入元素,所以首先你想要输入元素的父元素(复选框)和下一步的执行...

像,

function MarkAsUnread() {
    var idata = new Array();
    $(".client-chb:checked").each(function() {
        var test = $(this).parent();
        var next1 = test.next();
        var next2 = test.next().next();
        idata.push(next1.val());
        idata.push(next2.val());
    });
    //other logic
}

要获取或设置下一个TD的下一个和下一个TD的内容,请使用next1.val()和next2.val()