gpt4 book ai didi

javascript - 无法将 jQuery 对象传递给函数。如何安全地将 jquery 对象传递给函数?

转载 作者:行者123 更新时间:2023-11-28 02:01:11 25 4
gpt4 key购买 nike

我有这样的代码。当我在函数中使用硬编码的 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 失去了它的值(value)?如何安全地将 jquery 对象传递给函数?

最佳答案

如上所述here ,您必须比较原始 DOM 元素(而不是 jQuery 包装的元素)以确定相等性。这就是为什么你在控制台中得到错误的原因。

我认为如果您只需重新 jQuery-ify (?) 方法内的对象,就可以解决您的问题,如下所示:

$(drawTblParams.tbody).empty();

而不是:

drawTblParams.tbody.empty();

在整个方法中依此类推。

关于javascript - 无法将 jQuery 对象传递给函数。如何安全地将 jquery 对象传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18422179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com