1

我是编程新手,发现这段代码有点混乱。我知道选择文本类型的所有输入字段的行会遍历每个字段。

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

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

5 回答 5

4

直接从文档

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

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

这里有一些很好的解释

于 2013-07-16T08:48:24.007 回答
1

each()回调函数内部,this指的是 dom 元素,而不是 jQuery 包装的元素。

所以当你需要访问 jQuery 方法时,你需要使用$(this).

前任

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

于 2013-07-16T08:47:57.840 回答
1

使用该.each函数启动一个循环通过匹配的元素。

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

于 2013-07-16T08:48:40.647 回答
0

eachjQuery loop function,因此,在each每个匹配的元素内部都会考虑 jQuery 的单个对象。如果您使用JavaScript,那么您可以使用this.value,但在这里您正在玩,jQuery所以您必须遵循jQuery rules.因为,valjQuery 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();'

于 2013-07-16T09:05:19.397 回答
-1

使用 $(this) 获取您的 $('input[type="text"]') ==> 段落中的所有输入文本

于 2013-07-16T08:52:06.970 回答