我是编程新手,我发现这段代码有点令人困惑。我知道选择带有text类型的所有输入字段的行循环遍历每个字段。
那么为什么它使用$(this)
因为它已经进行了选择,所有输入字段都是文本类型。
$('#combine').click(function() {
var combined_text = "";
$('input[type="text"]').each(function() {
combined_text += $(this).val() + ' ';
});
alert(combined_text);
});
答案 0 :(得分:4)
.each()方法旨在使DOM循环结构简洁且不易出错。调用时,它会迭代属于jQuery对象的DOM元素。每次回调运行时,都会从0开始传递当前循环迭代。更重要的是,回调是在当前DOM元素的上下文中触发的,所以关键字this指的是元素。
并且
要访问jQuery对象而不是常规DOM元素,请使用$(this)。
答案 1 :(得分:1)
在each()
回调函数中,this
引用dom元素,而不是jQuery包装元素。
因此,当您需要访问jQuery方法时,需要使用$(this)
包装它。
实施例
如果你说this.value
,它将给出循环内元素的值
答案 2 :(得分:1)
使用.each
函数启动匹配元素的循环。
$(this)
,指当前元素,属于匹配元素组!
答案 3 :(得分:0)
each
是jQuery 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;段落中的所有输入文字