4

我有像下面的HTML代码一样的数据表,doubleClick在每一行自动插入SAVEEDIT按钮到 current 的末尾之后tr,我正在使用 datatables 类在表中创建数据,但我找不到当前tr单元格,例如eq(0 ~ 3)with jQuery

HTML:

<table>
    <tbody>
        <tr>
            <td>
                <input value="admin">
            </td>
            <td>
                <input value="pishguy@gmail.com">
            </td>
            <td>
                <input value=" A">
            </td>
            <td>
                <input value=" B">
            </td>
            <td>
                <input value="C">
            </td>
            <td>
                <ul class="styledlist" style="width: 50px;">
                    <li style="line-height: 13px; width: 30px; float: right;" class="save_category">SAVE</li>
                    <li style="margin-right: 6px; line-height: 13px; width: 30px; float: right;" class="cancel_save_category">CANCEL</li>
                </ul>
          </td>
        </tr>
    </tbody>
</table>

jQuery: 下面的代码不能正常工作

alert( $(this).parent().siblings('td:first').text() ); 
alert( $(this).closest('tr').children('td:eq(0)').text())  ;

我在表格中有任何一行,我想找到tr带有savecancel按钮的当前单元格。

4

2 回答 2

11

尝试这个:

alert($(this).closest('tr').find('td:eq(0) input').val());   // admin
alert($(this).closest('tr').find('td:eq(1) input').val());   // pishguy@gmail.com

在您的代码中:

$(this).closest('tr').children('td:eq(0)').text();

您正在寻找第一个内部的文本,td但那里没有文本,您在那里有一个具有一些价值的输入。因此,您需要在最接近的内部找到输入tr,然后使用val().

假设this此处代表此处的保存/取消

于 2013-05-27T11:35:24.167 回答
3

假设您单击特定行中的“保存”按钮,

然后你的点击处理程序如下,

function clickHandler() {
                    var $this = $(this), //this will represent the button
                        currentRow = $this.closest('tr'),
                        currentRowCells = currentRow.children();

                    //Now can access any cell within current row using currentRowCells Object, as follow
                    var firstCell = currentRowCells.eq(0),
                        secondCell = currentRowCells.eq(1);
                }
于 2013-05-27T12:45:34.637 回答