使用Sharepoint列表在Jy中找到dynamacally绑定html表中的隐藏列值

时间:2014-01-17 23:48:00

标签: javascript sharepoint

我有以下代码。现在我想根据用户选择的行获取隐藏的列值。我还要强调整行,而不仅仅是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。 有人可以帮助我。

1 个答案:

答案 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

我希望它有所帮助。