根据JQuery中的唯一标识符获取表行信息

时间:2014-03-22 14:40:46

标签: jquery

我有一个看起来像这样的表:

<table>
  <tr>
    <td> ID1 </td>
    <td> mr Dawson </td>
    <td> 37 </td>
    <td> New York </td>
  </tr>
  <tr>
    <td> ID2 </td>
    <td> mr Turner </td>
    <td> 47 </td>
    <td> Washington </td>
  </tr>
  <tr>
    <td> ID3 </td>
    <td> mr Craig </td>
    <td> 26 </td>
    <td> California </td>
  </tr>
</table

我的问题是如何获取行信息,即每个列使用JQuery通过唯一ID发送文本?

我尝试了以下内容:

var $Row = $("table").closest('tr').children('td');
var ID = $Row.eq(0).text();

但我需要知道如何定位特定行而不是返回所有行。

为了更好地解释如果我在SQL中这样做我可能会使用这样的查询:

SELECT * FROM TableName WHERE ID = "VariableName"

输出应如下所示:

ID - mr Dawson - 37 - New York

但我想将每个列值存储为变量以供脚本中的其他地方使用

由于

3 个答案:

答案 0 :(得分:1)

  

我的问题是如何获取行信息,即每列文本   通过使用JQuery的唯一ID?

您可以使用contains按内容获取元素。

<强> Live Demo

var toSearch = 'ID2';
$("table td:contains('"+toSearch+"')")

您可能需要find()而不是closest()才能获得后代。最接近的将是你的祖先而不是后代。

var $Row = $("table").find('tr:eq(0)'); //here parameter passed to eq in index
var $cell = $Row.find('td:eq(0)');  //here parameter passed to eq in index

您可以将变量用于索引

row = 1
col = 1
var $Row = $("table").find('tr:eq('+row+')'); //here parameter passed to eq in index
var $cell = $Row.find('td:eq('+col+'0)');  //here parameter passed to eq in index

答案 1 :(得分:1)

您可以使用filter()方法按单元格内容查找。例如:

var id = 'ID2';

var row = $('table tr').filter(function() {
    return $(this).find('td:eq(0)').text() === id;
});

然后您可以使用此方法获取表格单元格数组:

var data = $('table tr').filter(function() {
    return $(this).find('td:eq(0)').text() === id;
})
.find('td').map(function() {
    return $(this).text();
}).get();

console.log(data);

演示:http://jsfiddle.net/UXEFZ/3/

答案 2 :(得分:1)

鉴于已发布的所需输出,以及缺少导致该输出的任何用户输入/操作,我建议(尽管未经测试):

var row1 = $('table tr').eq(0).find('td').map(function(){
    return $(this).text();
}).get().join(' - ');

获取JavaScript对象中的所有行:

var allRows = {};
$('table tr').each(function(index){
    allRows['row' + (index + 1)] = $(this).find('td').map(function(){
        return $(this).text();
    }).get().join(' - ');
});

参考文献: