2017-05-31 8 views
-2
<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コード: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); 
    } 
} 

は、私が何をしないのですか?私は行を戻すことができなければならないし、それらにfind/childrenを実行してはいけませんか?

+3

'行[i]は' jQueryオブジェクトではありませんもうforループの代わりに '.each()'を使ってjQueryオブジェクトをループします。 – JJJ

+1

例について再帰的なことはありますか? – evolutionxbox

答えて

2

あなたはほんの少しあなたが.children().find()などのjQueryのメソッドを実行することができる上jQueryオブジェクトにDOMオブジェクトを変換するには、次のようにそれを変更する必要があります。

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); 
    } 
}