了解Jquery执行流程的提示

时间:2012-08-21 18:49:38

标签: jquery

我是JQuery的新手。我写了一小段代码(fiddle)。我想知道是否有人可以对我所写的陈述的执行顺序有所了解。

HTML:

<span>I</span>
<span>Love</span>
<span>JQuery</span>

JavaScript:

$(function() {
    $('<a>Url</a>').attr('href', 'http://www.jquery.com').appendTo('body');
    $('<span>More</span>').appendTo('body');
    $('span'.text());
});​

我期待Url I Love JQuery More的输出,但正如你所看到的,输出是我喜欢JQuery UrlMore。为什么输出按顺序排列?请帮忙

4 个答案:

答案 0 :(得分:2)

appendTo会将元素插入目标的 end 。如果您要将元素插入目标的 开头 ,请改用prependTo

$(function() {
    $('<a>Url</a>').attr('href','http://www.jquery.com').prependTo('body');
    $('<span>More</span>').appendTo('body');  
});​

这样,<a>Url</a>会在body的开头插入,<span>More</span>会在最后插入,会产生您期望的字符串Url I Love JQuery More

DEMO

在你的小提琴中,还有这一行$('span'.text());这是错误的。要获取范围的文本,请改用$('span').text()

答案 1 :(得分:1)

你附加到身体,它将它添加到最后。追加意味着,默认情况下,它会将其添加到文本的末尾。因此,它有三个块。

我喜欢JQuery --append-- URL --append--更多

答案 2 :(得分:0)

加载文档后,然后执行$(function(){})部分。您尝试将“Url”和“More”附加到文档正文的末尾,这就是为什么在您的初始HTML文档之后显示“UrlMore”的原因。

答案 3 :(得分:0)

如前所述,appendTo在最后插入 我个人更喜欢像这样工作:

$('#mysample').prepend($('<a href="jquery">URL</a>')).append($('<span>More</span>'));

我首先选择我的包装器,然后告诉我想要附加到它上面。这允许您像我在示例中一样链接您的操作。此外,不需要在单独的操作中添加属性,您可以像我一样在构建时执行此操作。

小提琴: http://jsfiddle.net/dSL6S/11/