为什么我们需要在.each()函数中使用$(this)?

时间:2013-07-16 08:45:38

标签: jquery

我是编程新手,我发现这段代码有点令人困惑。我知道选择带有text类型的所有输入字段的行循环遍历每个字段。

那么为什么它使用$(this)因为它已经进行了选择,所有输入字段都是文本类型。

$('#combine').click(function() {
    var combined_text = "";
    $('input[type="text"]').each(function() {
        combined_text += $(this).val() + ' ';
    });
    alert(combined_text);
});

5 个答案:

答案 0 :(得分:4)

From docs directly

  

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

并且

  

要访问jQuery对象而不是常规DOM元素,请使用$(this)。

Some good explanation here

答案 1 :(得分:1)

each()回调函数中,this引用dom元素,而不是jQuery包装元素。

因此,当您需要访问jQuery方法时,需要使用$(this)包装它。

实施例

如果你说this.value,它将给出循环内元素的值

答案 2 :(得分:1)

使用.each函数启动匹配元素的循环。

$(this),指当前元素,属于匹配元素组!

答案 3 :(得分:0)

eachjQuery loop function,因此,在each内,每个匹配元素都会考虑jQuery的单个对象。如果您使用JavaScript,那么您可以使用this.value,但在这里您正在使用jQuery,因此您必须关注jQuery rules.因为, val jQuery function获取当前object value因此您必须使用$(this)。因为 $ 会将this更改为jQuery Object。 :)

<强> in JavaScript we can get object value by 'this.value();' in loop

<强> in jQuery we can use above code but right baby is '$(this).val();'

答案 4 :(得分:-1)

使用$(this)获取$('input [type =“text”]')==&gt;段落中的所有输入文字