此问题与How to pass multiple variables from function to function
有关
所以在上面的链接中你可能已经看到了如何将一个变量(或多个)从函数传递给函数,但如果你想将它从常规js函数传递给jquery {{1} }值?
这可能听起来很奇怪,这就是为什么我会包含一个例子。
.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">
jquery函数来捕获attr
中的值的行明确注释,因为这不是正确的语法。
但是你怎么能传递这些变量?
这是我的问题
答案 0 :(得分:4)
您要做的是将多个属性传递给.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())
});
答案 1 :(得分:1)
如果你想坚持definingVars()
的当前结构,那么只要你想要直接调用该函数:
$("input").attr({
value: definingVars()[0],
id: definingVars()[1],
class: definingVars()[2]
})