Ale*_*lex 31 javascript jquery jquery-selectors
每个()的jQuery等价物是什么:
$(".element").each(function(){
// do stuff
});
Run Code Online (Sandbox Code Playgroud)
将函数附加到单个元素时,如#element?
use*_*716 19
您始终可以在变量中引用jQuery对象:
var $el = $('#element');
Run Code Online (Sandbox Code Playgroud)
......然后操纵它.
$el.doSomething(); // call some jQuery methods from the cached object
$el.doSomethingElse();
Run Code Online (Sandbox Code Playgroud)
如果您想要的原因.each()是引用DOM元素this,您实际上不需要this关键字来执行它,您可以简单地从jQuery对象中获取DOM元素.
var element = $('#element')[0]; // both of these give you the DOM element
var element = $('#element').get(0); // at index 0
Run Code Online (Sandbox Code Playgroud)
这两种这些都是等价的,并且将检索,将作为被引用的DOM元素this中.each().
alert( element.tagName ); // alert the tagName property of the DOM element
alert( element.id ); // alert the ID property of the DOM element
Run Code Online (Sandbox Code Playgroud)
我注意到,使用每个迭代单个元素并不一定是坏事.
好处是您可以轻松访问DOM元素,并且可以在新范围内执行此操作,因此不会使用变量使周围的命名空间混乱.
还有其他方法可以实现这一目标.举个例子:
(function( $ ) {
// Inside here, "this" will refer to the DOM element,
// and the "$" parameter, will reference the jQuery library.
alert( this.tagName );
// Any variables you create inside will not pollute the surrounding
// namespace.
var someVariable = 'somevalue'; // is local to this function
}).call( $('#element')[0], jQuery );
Run Code Online (Sandbox Code Playgroud)
Bol*_*ock 13
要直接回答您的问题,请.each()在包括1的任何大小的元素集上正常运行.
您也可以.each()完全省略调用,只需调用jQuery方法即可$('#element').请记住,在返回jQuery对象时,您可以链接大多数(如果不是全部)jQuery方法调用.这甚至适用于此问题的多个元素,具体取决于方法的作用.
$('#element').doSomething().doSomethingElse();
Run Code Online (Sandbox Code Playgroud)
如果需要多次引用该对象,请创建一个变量:
var $elm = $('#element');
$elm.doSomething();
doSomethingElse($elm);
Run Code Online (Sandbox Code Playgroud)
使用first().
each()匹配所有元素,而first()仅匹配第一个元素.
还有其他选择器.当您在选择器中使用id时,您将只获得一个元素.这是.element和之间的主要区别#element.第一个是可以分配给许多元素的类,而第二个是仅属于(最多)一个元素的id.
如果只返回一个(或0)元素,您仍然可以使用每个元素.此外,如果要链接事件,则可以完全跳过每个.each当您想要为元素列表中的每个元素执行特定函数时使用.