私はそのようなコードを持っています。関数でハードコードされたjqueryオブジェクトを使用すると、すべて正常に動作します。しかし、それを関数呼び出しに渡したい場合、関数が jquery オブジェクトを認識せず、テーブルが描画されません。
// This is a function that draws a table.
// I pass it the following params:
drawTbl({
tbody: $("#tbl tbody"), // <tbody> element, jq object, This doesn't work.
tblElem: null,
tblTmpl: null,
tblContTmpl: "cont_tmpl", // id of a jQuery template
justAll: res.justAll, // some data for a table
});
// This is a function declaration
// It doesn't draw a table if I pass tbody as a jquery object.
// But works if I hard code tbody
drawTbl = function(drawTblParams) {
drawTblParams.tbody.empty();
// Loop to draw a table with jquery template
for (var m in drawTblParams.justAll) {
// This doesn't work, content isn't appended to tbody
$.tmpl( drawTblParams.tblContTmpl, { i: drawTblParams.justAll[m] }).appendTo( drawTblParams.tbody );
// This works fine, content is appended to tbody
$.tmpl( drawTblParams.tblContTmpl, { i: drawTblParams.justAll[m] }).appendTo( $("#tbl tbody") );
}
// The most ridiculous thing
// This returns false! But it has to be the same element!
console.log(drawTblParams.tbody == $("#tbl tbody"));
};
jq-object が値を失うのはなぜですか? jqueryオブジェクトを関数に安全に渡す方法は?