从HTML表

时间:2017-07-25 05:52:10

标签: jquery html

我有一张表格可以显示一些数据。

此表中显示:

enter image description here

现在我有了这个按钮,它会显示值。在这个例子中,我想显示每一行的每个名字。

输出样本必须是:

alert('people.name');//of first row
alert('people.name'); //of second row
alert('people.name'); //and so on

我已经尝试过这段代码,但它说未定义:

$('#btn').click(function () {

    var name;
    var address;
    var contact;
    var people = [];

    $('#sample tbody tr').each(function () {
        var line = {
            'name': $(this).find('td:nth-child(1)').html(),
            'address': $(this).find('td:nth-child(2)').html(),
            'contact': $(this).find('td:nth-child(3)').html()
        };
        people.push(line);
        alert(people.name);
    });
});

但它的作用是返回undefined。 问题是什么?请帮帮我

我的表:

<table id="sample">
<thead>
    <tr>
        <th>Name</th>
        <th>Address</th>
        <th>Contact</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td>Dave</td>
        <td>Alpha St.</td>
        <td>12345</td>
    </tr>
    <tr>
        <td>Jade</td>
        <td>Delta St.</td>
        <td>56789</td>
    </tr>
    <tr>
        <td>Elsa</td>
        <td>Beta St.</td>
        <td>54321</td>
    </tr>
    <tr>
        <td>Mack</td>
        <td>Fox St.</td>
        <td>52324</td>
    </tr>
</tbody>

4 个答案:

答案 0 :(得分:0)

请尝试使用此代码。

$(document).ready(function (){
          $('#btn').click(function () {

    var name;
var address;
var contact;
var people = [];

$('#sample tbody tr').each(function (value,key) {
    var line = {
        'name': $(this).find('td').html(),
        'address': $(this).find('td:nth-child(2)').html(),
        'contact': $(this).find('td:nth-child(3)').html()
    };
    people.push(line);
alert('Name =>   '+ people[value]['name'] +'  Address =>   '+ people[value]['address'] +'  Contact =>  ' + people[value]['contact']);

    });
console.log(people);
});
});

确保您的代码ID是唯一的。

您可以直接在阵列中显示姓名,联系方式,地址,如下所示:

console.log(people[key]['name']);//need to change key value contact,address.

希望这有帮助。

答案 1 :(得分:0)

试试这个。

$('#btn').click(function () {

    var people = [];
    $('#sample tbody tr').each(function () {
        var $tds = $(this).find('td');
        var line = {
            name:     $tds.eq(0).text(),
            address:  $tds.eq(1).text(),
            contact:  $tds.eq(2).text()
        };
        people.push(line);        
    });

    var names = '';
    $(people).each(function () {
       names += this.name + ', ';
    });

   alert(names);
});

答案 2 :(得分:0)

eq(i)从0开始

$('#btn').click(function () {
var name;
var address;
var contact;
var people = []
 $('#sample tbody tr').each(function () {
    var line = {
        'name': $(this).find('td').eq(0).text(),
        'address': $(this).find('td').eq(1).text(),
        'contact': $(this).find('td').eq(2).text()
    };
    people.push(line);
    alert(people.name);
});
});

答案 3 :(得分:0)

据我了解你的问题,它会很好地运作。

$(document).ready(function (){
  $('#btn').on('click',function () {

    var name;
    var address;
    var contact;
    var people = [];

    $('#sample tbody tr').each(function (key,val) {

        var line = {
            'name': $(this).find('td:eq(0)').html(),
            'address': $(this).find('td:eq(1)').html(),
            'contact': $(this).find('td:eq(2)').html()
        };

        people.push(line);

        console.log("NAME: "+people[key]['name']);

        console.log("ADDRESS: "+people[key]['address']);

        console.log("CONTACT: "+people[key]['contact']);

    });

  });
});