jQuery递归查找

时间:2017-05-31 12:49:45

标签: javascript jquery html

<table id="TemplateBindVarsTable" class="table">
  <tr>
    <td class="control-label">${MeetingName}</td>
    <td class="form-control" style="border:0"><input id="${MeetingName}" 
     type="text"></td>
  </tr>
  <tr>
    <td class="control-label">${MeetingLocation}</td>
    <td class="form-control" style="border:0"><input id="${MeetingLocation}" 
    type="text"></td>
  </tr>
</table>

我有以下与此相反的jQuery代码:

function processTemplate() {
    var rows = $('#TemplateBindVarsTable').find("tr");
    for (var i = 0; i < rows.length; i++) {
        // NONE OF THESE WORK
        var cells = rows[i].children();
        var key = rows[i].find("td.control-label").text();
        var val = rows[i].find("td.control-label>input").val();
        alert('key: ' + key + ", val: " + val);
    }
}

我错过了什么?难道我不能让行回来然后在他们身上运行一个发现/孩子吗?!

1 个答案:

答案 0 :(得分:2)

您只需稍微修改它就可以将DOM对象转换为jQuery对象,您可以在jQuery对象上执行jQuery的方法,如.children().find()

function processTemplate() {
    var rows = $('#TemplateBindVarsTable').find("tr");
    for (var i = 0; i < rows.length; i++) {
        // NONE OF THESE WORK
        var cells = $(rows[i]).children();
        var key = $(rows[i]).find("td.control-label").text();
        var val = $(rows[i]).find("td.control-label>input").val();
        alert('key: ' + key + ", val: " + val);
    }
}