背景资料:
我有两个HTML表格。表“selected_users”表示用户选择的记录,“users”表示可用用户的列表。 “Users”是一个jquery dataTable。
当最终用户点击“用户”的记录时,需要做一些事情:
什么不起作用
除了第5步之外的所有内容都有效。具有匹配的pnumber的其他行未在dataTable中突出显示。如果你查看代码,你会看到我测试“selected []”js数组的长度,以确保大小增加......而且确实如此。 它只是在GUI上,行没有突出显示。
代码:
$(document).ready(function() {
var selected = [];
$('#users tbody').on('click', 'tr', function () {
var id = this.id;
var tr;
tr=$('<tr/>');
var index = $.inArray(id, selected);
if ( index === -1 ) {
selected.push( id ); //select/highlight in list of available users.
// Find td's inside this tr and add to selected_users table
var tds = $(this).find('td');
tr.append("<td>" + tds.eq(0).text() + "</td>");
tr.append("<td>" + tds.eq(1).text() + "</td>");
tr.append("<td>" + tds.eq(2).text() + "</td>");
tr.append("<td>" + tds.eq(3).text() + "</td>");
tr.attr('id', id.substring(4));
$('#selected_users').append(tr);
//test start - find and add all other rows with matching pnumber
var thisTR = $(this);
thisTR.siblings().filter(function() {
if ($('td',this).eq(2).text() == $('td', thisTR).eq(2).text() ) {
add_to_selected_users($(this));
if (($.inArray(temp, selected)) === -1) {
alert('need to highlight:' + this.id);
selected.push(this.id);
alert(selected.length);
};
};
//test stop
});
} else {
selected.splice( index, 1 ); //deselect from list of avail users
//remove matching record from selected_users table.
var record_id = id.substring(4);
var rowtodelete = document.getElementById(record_id);
rowtodelete.parentNode.removeChild(rowtodelete);
}
$(this).toggleClass('selected');
} ); //end function
} ); //end document ready
我确信这是我错过的简单事。 任何建议将不胜感激。
答案 0 :(得分:0)
我改变了这个:
if (($.inArray(temp, selected)) === -1) {
alert('need to highlight:' + this.id);
selected.push(this.id);
alert(selected.length);
};
到此:
if (($.inArray(this.id, selected)) === -1) {
selected.push(this.id);
$(this).toggleClass('selected');
};