Javascript jQuery如何处理具有多个匹配项的属性getter/setter?

Javascript jQuery如何处理具有多个匹配项的属性getter/setter?,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我知道jQuery选择器返回匹配DOM元素的对象,例如 typeof $('p'); // returns "object" 但是当我尝试访问对象中的所有元素时,它似乎是第一个元素的唯一效果,例如 $('p').html('test'); // only sets the first <p></p> to test 但这是首选的方法吗?是否有其他方法来设置体量属性 编辑:抱歉,伙计们,我试图访问错误的标记:(并且它与任何jQuery问题都无关。但是下面所说的一切都是

我知道jQuery选择器返回匹配DOM元素的对象,例如

typeof $('p'); // returns "object"

但是当我尝试访问对象中的所有元素时,它似乎是第一个元素的唯一效果,例如

$('p').html('test'); // only sets the first <p></p> to test
但这是首选的方法吗?是否有其他方法来设置体量属性



编辑:抱歉,伙计们,我试图访问错误的标记:(并且它与任何jQuery问题都无关。但是下面所说的一切都是有用的,可能对某人有帮助,所以我不会结束这个问题。

如果您想应用于所有的
p
,则无需循环。您可以通过以下方式进行应用:

$("p").html('test');

如果要应用于所有
p
,则无需循环。您可以通过以下方式进行应用:

$("p").html('test');

否,它不仅设置第一个
p
,还将更改所有的
,请参见示例否,它不仅设置第一个
p
,还将更改所有的
,请参见示例,情况并非如此:
事实并非如此:

这是不正确的,
jQuery.html()
将设置所有匹配元素。请参阅文档:

设置匹配元素集中每个元素的HTML内容

见工作示例:


但是,有些方法仅适用于第一个匹配元素,这是正确的。在这种情况下,您的方法将是最佳实践:

$('p').each(function() { 
   $(this).someMethod();
});

相反,如果您希望仅应用于适用于所有匹配的方法的第一个元素,则可以使用以下方法之一仅过滤/选择第一个元素:

$("p:first").method();

$("p")[0].method();

这是不正确的,
jQuery.html()
将设置所有匹配元素。请参阅文档:

设置匹配元素集中每个元素的HTML内容

见工作示例:


但是,有些方法仅适用于第一个匹配元素,这是正确的。在这种情况下,您的方法将是最佳实践:

$('p').each(function() { 
   $(this).someMethod();
});

相反,如果您希望仅应用于适用于所有匹配的方法的第一个元素,则可以使用以下方法之一仅过滤/选择第一个元素:

$("p:first").method();

$("p")[0].method();

但你错了,它确实设置了所有元素,请参见:

​$('p').html('test');​
但您错了,它确实设置了所有元素,请参见:

​$('p').html('test');​
详细说明,对于“getter”,大多数方法返回第一个结果,而“setter”通常会影响所有结果。文档在这方面有点稀疏,但大多数都会给出提示。详细说明,对于“getter”,大多数方法返回第一个结果,而“setter”通常会影响所有。文档在这方面有点稀疏,但大多数都会暗示这一点。恐怕你错了…请检查“但当我尝试访问对象中的所有元素时,它似乎是第一个影响的唯一影响。”是吗?@Sam Grondahl-你能编辑你的问题以澄清答案的上下文吗?恐怕你错了……请勾选“但当我试图访问对象中的所有元素时,它似乎是第一个元素的唯一效果。”是吗?@Sam Grondahl-你能编辑你的问题以澄清答案的上下文吗?