1

私は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 の出力を期待していましたが、ご覧のとおり、出力は I Love JQuery UrlMore です。出力がその順序になっているのはなぜですか? 助けてください

4

4 に答える 4

2

appendToターゲットの末尾に要素を挿入します。要素をターゲットの先頭に挿入する場合は、prependTo代わりに次を使用します。

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

このようにして、 の先頭と最後<a>Url</a>に挿入され、予想される string が生成されます。body<span>More</span>Url I Love JQuery More

デモ

あなたのフィドルには、間違っているこの行もあり$('span'.text());ます。スパンのテキストを取得するには、$('span').text()代わりに使用します。

于 2012-08-21T18:52:03.480 に答える
1

本文に追加しているため、最後に追加されます。Append は、デフォルトではテキストの末尾に追加することを意味します。したがって、それは 3 つのチャンクにあります。

JQuery が大好き --append-- URL --append-- もっと見る

于 2012-08-21T18:52:39.853 に答える
0

すでに説明したように、appendTo は最後に挿入します。
私は個人的に次のように作業することを好みます。

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

最初にラッパーを選択し、次に何を追加するかを指定します。これにより、例で行ったようにアクションを連鎖させることができます。また、別のアクションで属性を追加する必要はありません。私が行ったように、構築時に行うことができます。

フィドル: http://jsfiddle.net/dSL6S/11/

于 2012-08-21T19:04:41.877 に答える
0

ドキュメントがロードされた後、 $(function(){}) セクションが実行されます。ドキュメント本文の末尾に「Url」と「More」を追加しようとすると、最初の HTML ドキュメントの後に「UrlMore」が表示されるのはそのためです。

于 2012-08-21T18:55:56.927 に答える