jquery $.each 函数 console.log(this) ,打印结果是字符串,如 "a" 'b' 'c'
Posted
技术标签:
【中文标题】jquery $.each 函数 console.log(this) ,打印结果是字符串,如 "a" \'b\' \'c\'【英文标题】:The jquery $.each function console.log(this) ,prints result is string like "a" 'b' 'c'jquery $.each 函数 console.log(this) ,打印结果是字符串,如 "a" 'b' 'c' 【发布时间】:2017-11-08 06:45:18 【问题描述】:var arr=["aaa","bbb","cccc"];
$.each(arr,function(a,b)
console.log(this);
)
结果在 Chrome 控制台中如下:
Chrome 控制台
我认为结果是 "aaa" "bbb","cccc",为什么结果是 "a" "a" "a" 'b''b''b'....
【问题讨论】:
只有aaa,bbb,cccc(你可以做这个警报)。 chrome 有不同的显示字符串的方式。有额外的信息 使用console.log(b);它将打印 aaa bbb cccc 谢谢大家。 【参考方案1】:尝试更改为:
var arr=["aaa","bbb","cccc"];
$.each(arr,function(a,b)
console.log(b);
)
【讨论】:
谢谢,我知道'console.log(b)' 可以得到预期的结果。我不明白“this”。再次感谢您的帮助。【参考方案2】:原因是在您的 each
循环内,this
的作用域不适用于当前正在迭代的元素。
在JQuery.each()
,
您用作a
的变量是迭代索引
您用作b
的变量是当前的迭代元素。
如果要记录当前的迭代元素,请使用b
而不是this
:
$.each(arr,function(a,b)
console.log(b);
▲
)
【讨论】:
【参考方案3】:您提供的图片中的结果是正确的。控制台只显示字符串的单个字符及其长度信息,但如果查看实际值(原始值),它确实显示了“aaa”、“bbb”和“cccc”。
【讨论】:
【参考方案4】:var arr=["aaa","bbb","cccc"];
console.log(new String(arr[0]));
console.log(new String(arr[1]));
console.log(new String(arr[2]));
当你使用 jQuery.each 循环“arr”时,回调 while 绑定到 new String(arr[i])
$.each(arr,function(a,b)
console.log(new String(b));
console.log(this);
)
参数“b”是您的预期结果
【讨论】:
以上是关于jquery $.each 函数 console.log(this) ,打印结果是字符串,如 "a" 'b' 'c'的主要内容,如果未能解决你的问题,请参考以下文章
JQuery中$.each 和$(selector).each()的区别详解