【问题标题】:How to use multiple jquery object variables as selectors?如何使用多个 jquery 对象变量作为选择器?
【发布时间】:2013-08-29 06:51:49
【问题描述】:

在 jQuery 中,可以这样选择多个元素:

$("#id1,#id2").show();

但是当我有两个 jQuery 对象时,我似乎无法使用变量本身选择多个对象。例如:

var jqId1 = $("#id1");
var jqId2 = $("#id2");
$(jqId1).show();       // This works.
$(jqId1,jqId2).show(); // This only shows jqId1.

见 jsFiddle:http://jsfiddle.net/jr9Q2/

是否有另一种方法可以将多个 jq 变量指定为选择器?

【问题讨论】:

标签: jquery jquery-selectors


【解决方案1】:

你可以使用add

jqId1.add(jqId2).show();

但是不要为了避免查询"#id1,#id2"而让你的代码过于复杂:这个选择器依赖于getElementById并且非常快。

【讨论】:

  • 谢谢。我想避免重复选择器字符串,但如果这是最有效的方式,它当然可以进入变量。
  • 我可能不清楚:使用$("#id1,#id2") 不是最有效的方法。我只是想指出你不应该担心这里的性能,但你应该使用让你的代码可读和简单的东西。
  • 再次感谢。刚刚发现selector 属性,所以现在是$(jqId1.selector+','+jqId2.selector)。 :)
  • jqId1.add(jqId2) 会更快(这并不重要)并且在我看来比$(jqId1.selector+','+jqId2.selector) 更清晰。
【解决方案2】:

你可以使用每个循环:

$([jqId1, jqId2]).each( function(){
    $(this).show();
});

在这里回答: Select multiple jQuery objects with .add()

【讨论】:

    【解决方案3】:

    我知道这听起来有点愚蠢,但你也可以这样尝试。

    $([
        jqId1.get(0),
        jqId2.get(0),
        jqId3.get(0),
        ... // more jQuery elements
    ]).show();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-26
      • 1970-01-01
      • 2015-07-15
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      相关资源
      最近更新 更多