如何抓取选择器中的所有对象?

时间:2011-08-29 14:29:07

标签: javascript jquery

喜欢

 $(":input") 

如果有多个输入,如何返回每个对象?也许在某些数组?

此外,是否可以在使用$(":input").after(x)

时返回单个对象

4 个答案:

答案 0 :(得分:8)

jQuery each

$('input').each(function () {
    $(this); // A Single Input
})

或者

$('input')[0]; // HTMLElement Input

或者,jQuery's .get

  

支持的不仅仅是[...],例如.get(-1)返回最后一个   元素(可能有用) - pimvdb

如何获得长度:$('input').length

答案 1 :(得分:1)

$('input')

将选择所有输入

如果你想对他们做点什么......

$('input').each(function(){
    $(this).css('background','red')
})

请参阅此http://jsfiddle.net/jasongennaro/RczBh/

答案 2 :(得分:1)

jQuery工厂函数jQuery(...selector...)$(...selector...)返回一个jQuery.init对象,它本质上是一个奇特的元素数组。

each function是一种在迭代整个元素选择时继续链接函数调用的简单方法。

  

.each()方法旨在使DOM循环结构简洁且不易出错。调用时,它会迭代属于jQuery对象的DOM元素。每次回调运行时,都会从0开始传递当前循环迭代。更重要的是,回调是在当前DOM元素的上下文中触发的,因此关键字this指的是元素。

函数参数有两个参数function( index, element ),您可以使用i代替index,因为它具有相同的基本效果。 this也将引用element,因此第二个参数在很大程度上是不必要的,除非您计划在保留对元素的引用的同时在内部范围内执行函数。

var vals=[];
$('input').each(function(index,element){
  var $this, val;
  $this = $(this);
  val = $this.val();
  vals.push(val);
  ...do more stuff...
});
console.log( vals );

答案 3 :(得分:1)

$(":input")  // Returns a collection of DOM elements at 0-based indices wrapped
             //     in an object that contains jQuery methods

$(":input").length   // Is used to discover the quantity of elements matched.

$(":input").after('something')  // Implicitly applies .after() to each element.
                                //   Most jQuery methods work this way.

$(":input").each(function() {  // Lets you operate on each element individually.
    alert( this.nodeName );  // "this" will reference the current element.
});                         

  

“此外,是否可以在使用$(”:input“)时返回单个对象。在(x)之后”

如果您的意思是想要由.after()创建的结果元素的集合,那么它将取决于x是什么。

如果它是单个元素(不是文本节点),请执行以下操作:

var new_elems = $(":input").after(x).next();

这会在每个input之后放置新元素,然后使用next()[docs]方法遍历每个input的下一个元素兄弟,这应该是插入的新元素。