如何将多个变量从funtion传递给jquery attr

时间:2015-11-02 02:52:48

标签: javascript jquery

  

此问题与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中的值的行明确注释,因为这不是正确的语法。

但是你怎么能传递这些变量?

这是我的问题

2 个答案:

答案 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]
})

DEMO