在jQuery.each()之后,数组中的字符串不再是字符串
当我通过jQuery.each()
方法循环它时,我对字符串数组的行为很困惑。 显然,字符串成为回调函数中的jQuery对象。 但是,我不能使用this.get()
方法来获取原始字符串; 这样做会触发this.get不是函数错误消息。 我想原因是它不是DOM节点。 我可以做$(this).get()
但它使我的字符串成为一个数组(从"foo"
到["f", "o", "o"]
)。
我怎么能把它扔回字符串? 我需要获取String
类型的变量,因为我将它传递给其他函数来比较它们之间的值。
我附上一个独立的测试用例(需要Firebug的控制台):
编辑/澄清:calllback函数有两个参数,第二个是变量的值。 使用它而不是this
我测试了两个变体,一切似乎按预期工作(字符串仍然是字符串)。
>>> $.each(['foo','bar'], function(i, s){ console.info( s, typeof s ) }) foo string bar string >>> $(['foo','bar']).each(function(i, s){ console.info( s, typeof s ) }) foo string bar string
这适用于我的Firefox 3.5:
$(function(){ var foo = []; foo.push("abc"); foo.push("def"); $.each(foo, function(i){ console.log(typeof ("" + this)); }); });
控制台显示
串 串