根据第一行的内容从动态HTML表中获取单元格值

时间:2014-06-15 23:35:14

标签: javascript jquery html

我在html中有一个表,它的列顺序可以改变。该表的代码是:

<table id="table">
        <tr>
            <td>ID</td>
            <td>Place</td>
            <td>Population</td>

        </tr>

        <tr>
            <td>1</td>
            <td>Phoenix city</td>
            <td>1445632</td>

        </tr>
        <tr>
            <td>2</td>
            <td>San Antonio city</td>
            <td>1327407</td>

        </tr>
        <tr>
            <td>3</td>
            <td>San Diego city</td>
            <td>1307402</td>

        </tr>
        <tr>
            <td>4</td>
            <td>Dallas city</td>
            <td>1197816</td>

        </tr>
        <tr>
            <td>5</td>
            <td>San Jose city</td>
            <td>945942</td>

        </tr>
</table>

我需要获取id等于2列的值,第一行显示“Place”。我用来尝试这样做的jquery代码是:

//Convert Object
    var table = $('#table');
    //get cell
    var valuefinal = $(table).find("tr").eq(2).find("td").text("Place");
    //display value
    alert(valuefinal);

有可能这样做吗?我认为这样做非常复杂

JSFiddle

2 个答案:

答案 0 :(得分:1)

如果这是你的意思,这将选择你正在寻找的道路。

var cell = $("td:contains('Place')");

http://api.jquery.com/contains-selector/

编辑:发表评论后:

我认为这就是你要找的东西: http://jsfiddle.net/SdBBy/316/

  

// get cell var valuefinal =   $(表).find(&#34; TD:第n个孩子(2)&#34)当量(2)的.text();

答案 1 :(得分:1)

working demo

看起来您正在寻找更具动态性的解决方案。请参阅上面的演示和以下代码:

    var table = $('#table'),
        colHeader = {};
    table.find('tr').eq(0).children('td')
    .each(function(i,v) { 
        colHeader[ $(v).text() ] = i;
    });
    console.log( colHeader );
    var valuefinal = table.find('tr').filter(function(){
        return $(this).children('td').eq( colHeader['ID'] ).text() == 2;
    })
    .children('td').eq( colHeader['Place'] ).text();
    alert(valuefinal);