Javascript jQuery如何处理具有多个匹配项的属性getter/setter?
我知道jQuery选择器返回匹配DOM元素的对象,例如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问题都无关。但是下面所说的一切都是
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-你能编辑你的问题以澄清答案的上下文吗?