【问题标题】:Create jquery object var创建 jquery 对象变量
【发布时间】:2012-08-10 23:12:34
【问题描述】:

我想复制 jquery 对象选择,例如

当我用

选择多个对象时
var test = $(".someclass");

我得到具有该类的所有选定对象的对象。

现在我怎么能在那场战争中继续添加对象,比如test.push($(".somediv"));

我也看到了.add( jQuery object ),但它给了我错误Cannot call method 'add' of null 当我尝试将对象添加到空变量时

另外,我怎样才能创建没有值的 jquery 变量,然后再添加它们?

【问题讨论】:

标签: jquery


【解决方案1】:

您可以使用$() 创建一个空的jQuery 对象,然后您可以使用.add() 通过选择器向其中添加更多项目:

var items = $().add(".someClass");
items = items.add(".someDiv");

使用.add() 时,请记住它返回一个NEW jQuery 对象,其中添加了新元素。它不会修改原始jQuery 对象。很容易忘记这一点并去做:

items.add(".someDiv");

并想知道为什么什么都没有添加到 items (这让我好几次了)。

【讨论】:

  • 啊,那就这么解释了。我看到您(重新)编辑以添加新内容,但没有意识到引用的遗漏是由编辑竞赛引起的(因为需要更好的词)。只是想知道你是否知道一些我不知道的(其他......)。 =)
【解决方案2】:

jfriend00 解决方案是您在现代版本的 jQuery 中使用的解决方案。我也经常使用这个:

var classes = ['foo', 'bar', 'bla', 'asd'];
var $els = $('.'+ classes.join('.,'));

【讨论】:

  • 这不是添加元素,而是一次选择所有元素。
  • @Felix Kling 我不认为这有什么不同,这取决于情况。如果您已经有一个对象,您可以随时执行此操作$el.add('.'+ classes.join('.,')),这与添加四次相同。
【解决方案3】:

你可以这样做

var objects = $().add(".className").add(".divName");

【讨论】:

  • Jquery:少写,多做 :)
猜你喜欢
  • 1970-01-01
  • 2017-10-19
  • 1970-01-01
  • 2012-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-13
相关资源
最近更新 更多