2011-06-06 103 views
-3
$.each(['a'], function(){$('<a/>').text(this).appendTo('body');}); 

=> Firefox和Chrome告诉我, 'appendTo' 不是一个函数...有人能告诉我为什么它失败了吗?

+0

你能告诉某人你正在做什么吗? – pixeline 2011-06-06 21:43:55

+0

预期结果:追加' a'到正文 – 2011-06-06 21:47:33

+0

是的,我想这是你的第一个q。在笔记回答之前,您是否回答了问题? – 2011-06-06 21:51:05

回答

1

您可以使用:

$.each(['a'], function(idx, elem){$('<a/>').text(elem).appendTo('body');}); 

甚至更​​好,只使用一个for循环:

var elements = ['a']; 
for (var i in elements) { 
    $('<a/>').text(elements[i]).appendTo('body'); 
} 

它既是更容易阅读和更快的执行。

+0

是的,的确,但'this'应该是当前的字符串,对不对?或者,也许它只适用于旧版本的jQuery ... – 2011-06-06 21:45:31

+0

要看看会发生什么,请尝试运行:'$ .each(['a'],function(){console.log(this);});' – rid 2011-06-06 21:47:55

+0

我已经做到了这一点。并且firefox记录一个字符串。这就是为什么我不明白... – 2011-06-06 21:51:07

0

$('<a/>')这应该是$('a')

+0

他没有抓住一个元素,他正在创造一个... – 2011-06-06 21:38:52

0

不将text函数返回一个字符串对象,而不是一个jQuery目的?

0

.text()是一个设置文本的函数,但我不认为你可以将它链接在一起。尝试打开了该行:

$('a').each(function() { 
    var a = $('<a/>'); 
    a.text($(this)); 
    $('body').append(a); 
}); 
0

你想做什么?

也许更像? $('a')。each(function(){$('body')。append('')});

相关问题