访问DOM,html表并将表标题保存到变量中。

时间:2014-06-01 17:08:09

标签: javascript jquery html dom

我需要对DOM进行更改。我需要使用paragaraphs呈现表格内容。 为此我需要获取每行表的数据。我怎么能这样做?

<table style="width:300px">
    <tr>
        <th>Name</th>
        <th>Surname</th>
        <th>Age</th>
    </tr>
    <tr>
        <td>Jill</td>
        <td>Smith</td>
        <td>50</td>
    </tr>
    <tr>
        <td>Eve</td>
        <td>Jackson</td>
        <td>94</td>
    </tr>
</table>

输出应该是这样的 - 名字 - 吉尔,姓氏 - 史密斯,50岁和名字 - 夏娃姓氏 - 杰克逊时代 - 94

我写过类似的东西,

  $("table tr").each(function () {
        text = "";
  $(this).find('th').each(function () {
            //save the column headings to variables
        });

        $(this).find('td').each(function () {
            text += $(this).text() + " ";
        });
        alert(text);
    });

它将逐行打印。但需要在每个方面增加前景。我想我必须使用数组或类似的东西来存储表标题并在每个中使用它。

1 个答案:

答案 0 :(得分:2)

是的,只需在变量中存储对th元素的引用,然后逐行迭代其他单元格。您还可以将标题文本存储在数组中:

var headings = $('th').map(function() { return $(this).text(); }).get();

$("table tr:has(td)").each(function () {
    var text = "";
    $(this).children('td').each(function (index) {
        text += headings[index] + ":" + $(this).text() + " ";
    });
    alert(text);
});