这个问题与How to pass multiple variables from function to function有关
因此,在上面的链接中,您可能已经看到了如何将变量(或多个)从一个函数传递到另一个函数,但是如果您希望将它从一个常规的js函数传递到jquery .attr() 值??
这听起来可能很奇怪,这就是为什么我要举一个例子。
$(function() {
function definingVars() {
var Value = "Sucess with the value";
var Id = successWithTheId;
var Class = sucessWithTheClass;
return [Value, Id, Class];
}
$("input").attr({
// var df = definingVars(); Incorrect syntax!!!
value: df.Value,
id: df.Id,
class: df.Class
})
});<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="noSucessWithTheId" class="noSucessWithTheClass" value="No sucess with the value">
但是,正如您可以看到的那样,应该大声地使用attr jquery函数来捕获来自definingVars()的值的行得到了明确的注释,因为这不是正确的语法。
但是你怎么还能传递这些变量呢?
这就是我的问题
发布于 2015-11-02 02:58:36
您要做的是将多个属性传递给.attr(),为此我们使用了一个带有键/值对的对象。
因此,您可以做的是从definingVars返回一个对象,并将definingVars返回的值作为参数传递给attr(),如下所示
$(function() {
function definingVars() {
var Value = "Sucess with the value";
var Id = successWithTheId;
var Class = sucessWithTheClass;
return {
value: Value,
id: Id,
class: Class
};
}
$("input").attr(definingVars())
});
发布于 2015-11-02 03:00:01
如果您想继续使用definingVars()的当前结构,那么如果需要,只需直接调用该函数:
$("input").attr({
value: definingVars()[0],
id: definingVars()[1],
class: definingVars()[2]
})DEMO
https://stackoverflow.com/questions/33470008
复制相似问题