在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)); }); }); 

控制台显示

 串
串