2014-01-17 37 views
0

我有以下代码。现在我想根据用户选择的行获取隐藏列值。我也想突出整个行,不仅是e.target。 有人可以帮助我吗。在Sharepoint列表中发现动态绑定html表中的隐藏列值 - Javascript

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

你有很多方法来改进/优化你的代码。例如,您不应每次调用$(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 

我希望它有帮助。

+0

嗨AymKdn, 谢谢你的帮助和建议。我尝试过使用$('#TermList')。('td','click',function(e){,但是这并没有做任何事情,我是否还需要更改以下部分?if (“#TermList”)。append(“”+ 非常感谢。 –

+0

您是否使用jQuery的最新版本?(v9.x或10.x)在调用绑定函数之前,请确保您的HTML表格名为“TermList”已创建到DOM *中! – AymKdn