通过传递特定行的列名来查找html表单元格的值

Moo*_*ons 1 html javascript jquery

我使用JSON动态创建表,所以我事先不知道将生成多少列和/或行.

我为选中的行添加了一个单击的事件.

现在我的每个表都有一个列名ID

我想找到所选行的ID值.

我怎样才能实现这一目标?

我用google搜索了很多样本​​,选择单元格索引而不是列名.

我的表是这样的:

在此输入图像描述

我的表生成如下:

function CreateTableView(objArray, theme, enableHeader) {
// set optional theme parameter
if (theme === undefined) {
    theme = 'mediumTable'; //default theme
}

if (enableHeader === undefined) {
    enableHeader = true; //default enable headers
}

// If the returned data is an object do nothing, else try to parse
var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;

var str = '<table class="' + theme + '">';

// table head
if (enableHeader) {
    str += '<thead><tr>';
    for (var index in array[0]) {
        str += '<th scope="col">' + index + '</th>';
    }
    str += '</tr></thead>';
}

// table body
str += '<tbody>';
for (var i = 0; i < array.length; i++) {
    str += (i % 2 == 0) ? '<tr class="alt">' : '<tr>';
    for (var index in array[i]) {
        str += '<td>' + val(array[i][index]) + '</td>';
    }
    str += '</tr>';
}
str += '</tbody>'
str += '</table>';
return str;
Run Code Online (Sandbox Code Playgroud)

}

任何帮助表示赞赏

And*_*ndy 6

我希望我能正确理解你,但这应该做到.它使用单击的tr的名称ID警告td的内容.

$('tr').live('click',function(){
    alert( $(this).find('td[name="ID"]').html() );
});
Run Code Online (Sandbox Code Playgroud)

要通过带有文本ID的th找到td,您可以这样做:

var index = $('yourtable th:contains("ID")').index();
alert( $('.selectedRow td:eq('+index+')').html() );
Run Code Online (Sandbox Code Playgroud)

我要做的是将ID保存在TR的数据对象中,这样你就不必将它拉出td,但可以直接访问它,如下所示:

[...]
<tr data-id="26"><td>.....</td></tr>
[...]
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样访问它:

$('.selectedRow').data('id');
Run Code Online (Sandbox Code Playgroud)