-2

我有一个表格,当用户点击链接时需要复制该行的内容并将它们填充到其他字段中,例如编辑信息。如何将行内容填充为数组

<table id='mytable' border='1'>
    <thead>
        <th id='ID'>ID</th>
        <th id='Email'>Email</th>
    </thead>
    <tr>
        <td><a href="#">1</a></td>
        <td>abc@gmail.com</td>
    </tr>
    <tr>
        <td><a href="#">2</a></td>
        <td>xyz@gmail.com</td>
    </tr>
    <tr>
        <td><a href="#">3</a></td>
        <td>pqr@gmail.com</td>
    </tr>
</table>

jsfiddle链接

http://jsfiddle.net/keJBZ/5/

4

2 回答 2

3

不知道为什么我回答了这个问题,因为你的问题很模糊。

如果要将所选行中的信息提取到数组中,请执行以下操作:

http://jsfiddle.net/KyleMuir/keJBZ/6/

var array = new Array();

$('#mytable tr').on('click', copyIntoArray);

function copyIntoArray() {
    var self = $(this);
    var tds = self.children('td');
    array.push(tds[0].innerText, tds[1].innerText);
}

构建一个对象以推送到数组上会很有意义,这样您就可以使用 KVP 或类似的东西来提供一些上下文。

编辑

这是您的固定版本。不需要数组。我还为您提供了“电子邮件”和“用户名”的输入 ID,以便于选择。

http://jsfiddle.net/KyleMuir/keJBZ/21/

最终代码:

$('#mytable tr').on('click', setInformation);

function setInformation() {
    $("#edit").show();
    var self = $(this);
    var tds = self.children('td');
    $('#username').val(tds[1].innerText);
    $('#email').val(tds[2].innerText);
}

最终编辑?!?原来 FireFox 不支持 .innerText,将其替换为 jQuery 以检索值。

http://jsfiddle.net/KyleMuir/keJBZ/24/

这个:

$('#username').val(tds[1].innerText);
$('#email').val(tds[2].innerText);

变成:

$('#username').val($(tds[1]).text());
$('#email').val($(tds[2]).text());

希望这可以帮助。

于 2013-09-23T02:39:11.180 回答
0

给每一行一个 ID,然后在你的 JavaScript 中,使用 getElementById 来获取被点击的行。然后,您还可以使用相同的函数获取该行的所有列。您可以将所有列放在一个 var 中,然后使用该 var 填充您想要的任何内容。

于 2013-09-23T02:39:34.587 回答