我有以下代码。现在我想根据用户选择的行获取隐藏的列值。我还要强调整行,而不仅仅是e.target。 有人可以帮助我。
function getTermdetailsQuerySuccsess(sender, args) {
var listEnumerator = Termsitems.getEnumerator();
var datatable = document.getElementById("TermList");
while (listEnumerator.moveNext()) {
var oListItem = listEnumerator.get_current();
//var firstName = listEnumerator.get_current().get_item('Title');
//var secondName = listEnumerator.get_current().get_item('LastName');
var termID = listEnumerator.get_current().get_item('ID');
var startdate = listEnumerator.get_current().get_item('startdate');
var enddate = listEnumerator.get_current().get_item('Enddate');
var termtype = listEnumerator.get_current().get_item('TermType');
var Hours = listEnumerator.get_current().get_item('Hours');
var EdNone = listEnumerator.get_current().get_item('EdNoned');
var Specialty = listEnumerator.get_current().get_item('Specialty');
var Subspecialty = listEnumerator.get_current().get_item('Subspecialty');
var Hospital = listEnumerator.get_current().get_item('Hospital');
var DEMT = listEnumerator.get_current().get_item('DEMT');
var Supervisor = listEnumerator.get_current().get_item('Supervisor');
rowcount = rowcount + 1;
$("#TermList").append("<tr style='border-bottom:1px silver solid' align='middle' class='gradeA'>" +
"<td align='left' style='display:none'>" + termID + "</td>" +
"<td align='left'>" + startdate + "</td>" +
"<td align='left'>" + enddate + "</td>" +
"<td align='left'>" + termtype + "</td>" +
"<td align='left'>" + Hours + "</td>" +
"<td align='left'>" + EdNone + "</td>" +
"<td align='left'>" + Specialty + "</td>" +
"<td align='left'>" + Subspecialty + "</td>" +
"<td align='left'>" + Hospital + "</td>" +
"<td align='left'>" + DEMT + "</td>" +
"<td align='left'>" + Supervisor + "</td>" +
"</tr>");
}
}
$('#TermList').click(function (e) {
var tr = $(e.target).parent().index() ;
alert(tr);
alert($(e.target).text()); // using jQuery
// var Cells = tr.e.getElementsByTagName("td");
$(e.target).addClass('row-highlight');
var confirmationM = confirm("Do you want to edit this term deatils ?");
if (confirmationM == true) {
confirmation = "You pressed OK!";
}
else {
confirmation = "You pressed Cancel!";
$(e.target).removeClass('row-highlight');
}
});
$('#TermList').click(function (e) {
var tr = $(e.target).parent().index() ;
alert(tr);
alert($(e.target).text()); // using jQuery
// var Cells = tr.e.getElementsByTagName("td");
$(e.target).addClass('row-highlight');
var table = $("#TermList")[0];
var cell = table.rows[tr].cells[1];
alert(cell);
var confirmationM = confirm("Do you want to edit this term deatils ?");
if (confirmationM == true) {
confirmation = "You pressed OK!";
}
else {
confirmation = "You pressed Cancel!";
$(e.target).removeClass('row-highlight');
}
});
我有以下代码。现在我想根据用户选择的行获取隐藏的列值。我还要强调整行,而不仅仅是e.target。 有人可以帮助我。
答案 0 :(得分:0)
您有很多方法可以改进/优化您的代码。例如,您不应每次都调用$(e.target)
,而应将其保存到变量var $target = $(e.target)
中,listEnumerator.get_current()
也一样,为什么在保存值时始终调用它进入oListItem
?!
但无论如何,这不是你的问题。
不是绑定整个表,而是只能绑定TD:$('#TermList').click(function (e) {
变为$('#TermList').on('td', 'click', function(e) {
然后,要找到该行,您只需要执行:
var $td = $(this); // here it's your selected cell
var $tr = $td.parent(); // here it's your selected row
$tr.addClass('row-highlight'); // highlight the row
并在第一个单元格中找到值:
alert($tr.find('td:first').text()); // return the value of the first cell
我希望它有所帮助。