【问题标题】:Combining selectors as variables in jQuery在jQuery中将选择器组合为变量
【发布时间】:2012-05-10 07:19:41
【问题描述】:

我正在考虑组合选择器的最佳方式,我在我的 jQuery 代码中将其用作变量。我想始终将选择器用作变量,但问题是有时我想在一个语句中使用它们,所以我在想最优雅的方法是什么。

我应该使用 add ( (x+y).function... ) 吗?或者也许添加字符串?或者也许将 jQuery 变量保留为只有名称的 id,这样我就可以在单个 jQuery 语句中组合($ 即)

x = $('#selectorOne');
y = $('#selectorTwo');

【问题讨论】:

    标签: javascript jquery coding-style


    【解决方案1】:

    您可以将它们存储在一个数组中:

    var selectors = [
        '#selector1',
        '#selector2',
        ....
    ];
    

    当你想一起使用它们时,用逗号分隔join()

    var alljoined = selectors.join(','); //join ALL selectors
    $(alljoined).doSomethingToAll();     //and do something to all
    

    您也可以选择性地选择:

    var fewjoined = [                  //select a few selectors...
        selectors[1], 
        selectors[3],
        ...
    ].join(',');                       //..to join
    $(fewjoined).doSomethingToAll();   //and do something
    

    【讨论】:

    • 非常感谢!这是解决这个问题的最优雅/最有效的方法吗?
    • @Malyo 实际上有很多方法。这是我阅读帖子时首先想到的。此外,它调用所有选择器一次,而不是单独调用每个选择器并稍后合并结果。
    • 好的,我会尝试一下,暂时保持话题开放,也许会弹出一些有趣的解决方案,再次感谢
    • 我发现在这种情况下使用 add() 效率更高,因为我想最小化代码(尤其是 $ 语句),尽管使用 add() 方法也可以工作,当我有一个非常复杂的功能要做时会更好。再次感谢
    【解决方案2】:

    如果它们被声明为变量,您可以使用add():

    x.add(y).something();
    

    【讨论】:

      【解决方案3】:

      Multiple Selector (“selector1, selector2, selectorN”)-您可以指定任意数量的选择器来组合成一个结果。这种多表达式组合器是选择不同元素的有效方法。返回的 jQuery 对象中的 DOM 元素的顺序可能不相同,因为它们将按文档顺序排列。

      例子:

      $("div,span,p.myClass").css("border","3px solid red");
      

      .add() - 将元素添加到匹配元素集合中。

      例子:

      $("p").add("div").addClass("widget");
      

      【讨论】:

      • 嘿,感谢您的回答,尽管我知道多重选择器,但我的问题并非如此,尽管 add 方法适用于我的变量情况。
      【解决方案4】:

      由于 x 和 y 只是数组,因此可以使用 jQuery.merge 来组合它们。高温

      【讨论】:

      • 好吧,但我想把 $ 语句放在里面,所以用 $ 语句添加 $ satement 似乎不是一个好的解决方案
      猜你喜欢
      • 2014-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 1970-01-01
      相关资源
      最近更新 更多