我正在使用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;
}
感谢任何帮助
答案 0 :(得分:6)
我希望我能正确理解你,但这应该做到。 它使用所单击的tr的名称ID警告td的内容。
$('tr').live('click',function(){
alert( $(this).find('td[name="ID"]').html() );
});
要通过带文本ID的th找到td,你可以这样做:
var index = $('yourtable th:contains("ID")').index();
alert( $('.selectedRow td:eq('+index+')').html() );
我要做的是将ID保存在TR的data对象中,这样您就不必将其从td中删除,但可以直接访问它,如下所示:
[...]
<tr data-id="26"><td>.....</td></tr>
[...]
然后您可以像这样访问它:
$('.selectedRow').data('id');