1

设想:

我正在使用数据表库来显示大量信息。该表具有以下行:

Id   Type     Name      Case

我正在寻找的是,当我单击第二行Type时,该值将被粘贴到文本框中

例子

Id   Type     Name      Case
1    text     Juan       20001
3    List     Pedro      20005

如果我单击具有 id #1 的行,我需要采用类型 innerHTML。我单击的行的任何部分都无关紧要,只需获取第二个 td 的 html。

我试过这段代码:

$("tr td").click(function () {

    alert($(this).html());
    })

它工作得很好,但问题是用户必须准确单击行名称,但如果用户可以单击任何行并只获取第二行 html 会更好。

建议?

4

3 回答 3

1

尝试使用 eq()

但如果用户可以单击任何行并只取第二行 html 会更好。

$("tr td").click(function () {
    secondrow = $(this).closest('tr').siblings().eq(1);
});

如果我单击具有 id #1 的行,我需要采用类型 innerHTML。我点击的行的哪一部分都没有关系,只需获取第二个 td 的 html。

$("tr td").click(function () {
    secondTd = $(this).siblings().eq(1);
    alert(secondTd.html());
});
于 2013-05-02T18:02:36.653 回答
1
myRow.getElementsByClassName('td')[1].innerHTML

只要第一个表格单元格不包含嵌套表格,就应该得到innerHTML第二个表格单元格的。myRow

您可以尝试将点击处理程序添加到行而不是单元格。

于 2013-05-02T18:03:15.600 回答
0

尝试这个

     $(function () {
        $("#thetable tr").click(function () {
           if ($(this).index() == 0) return;
           $('#tbox').val($('td:nth-child(2)', $(this)).html())
        })
     });

HTML

  <table border="1" cellpadding="4" id="thetable">
     <tr>
        <td>Id</td>
        <td>Type</td>
        <td>Three</td>
        <td>Four</td>
     </tr>
     <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
        <td>4</td>
     </tr>
     <tr>
        <td>5</td>
        <td>6</td>
        <td>7</td>
        <td>8</td>
     </tr>
  </table><br />
  <input type="text" name="tbox" id="tbox" />

该方法考虑了仅包含标签的第一行,并且如果单击顶行,则不会将文本框值设置为标签。

于 2013-05-02T18:11:34.087 回答