2011-02-02 4 views
1

.prepend()は、.prepend("<li>item1<li>")のような1行のコードがある場合に機能しますが、クラスなどで複数のdivなど大きなコードブロックを配置しようとすると機能しません。私はしかし、あなたはそれに関数を渡すことができますが、私は構文を理解することはできませんでした。jQuery .prepend()の使用方法

代わりに$(selector).prepend(function(index,html))を使用する必要がある場合は、これを使用してください。

編集:私はそれに関数を渡すことで動作している、私はまだインデックス、HTMLパラメータを使用する方法を理解していない。その後、

+0

あなたは動的に文字列を生成していますか?おそらく、要素を個別に作成して前に付ける必要があります。 –

答えて

2

あなたは、文字列を作成する必要があります...

var myString = '<div class="lorem"><div id="temp" class="ipsum"></div></div>'; 

し、それを先頭に追加:

$(selector).prepend(myString); 

注:必ず丹にDOMの挿入を減らします。作業ソリューション:http://jsfiddle.net/mCUWe/

編集:マークアップをフォーマットする場合は、文字列連結と呼ばれる処理を実行できます。同様に動作します:http://jsfiddle.net/mCUWe/1/

var myString = '<div class="lorem">LOREM' 
       +'<div id="temp" class="ipsum">IPSUM' 
       +'</div></div>'; 

更新昨今02/2017

私はセレクタにあなたの現在の要素の位置を教えてくれますES2015 Template-Strings

+0

私の問題は、複数の改行があり、「/」を使用していなかったことだと思います。 –

+0

はい。改行はあなたのコードを壊すでしょう...上記の私の更新を見てください。多分さらなるプロジェクトのために。ちょうどsugesstionとして:) – gearsdigital

1

indexパラメータと一緒に行くことをお勧めし

htmlパラメータは、現在の要素の古いhtmlを通知します

例えば

あなたはulを持って欲しいと懇願するli番号を挿入したい場合は、:

$('ul').find('li').prepend(function(index, html){ 
    return 'li number ' + index; 
}) 
+0

、それは助けてくれてありがとう。 –

関連する問題