1

(ul)の前後にいくつかのタグを挿入しようとしている順序付けされていないリスト(ul)があります。(ul)の前にタグをうまく挿入しているようですが、何らかの理由で後に挿入されません。これがjsfiddleです:http://jsfiddle.net/grem28/ptSVA/1/

$('.isNav').addClass('nav').before('<nav class="navbar navbar-inverse"><div class="navbar-inner">').after('</div></nav>');

結果を調べると、私が話していることがわかります。もともとは連鎖させていたのですが、前後を一緒に挿入しているようで、分離しました。.afterを最初に実行した後、.beforeを実行すると正しく表示されると思いましたが、機能しません。皆様のご協力をよろしくお願いいたします。

皆さんありがとう

4

2 に答える 2

3

これは、afterメソッドに無効なマークアップを渡し、選択した要素の前後に兄弟要素としてbefore要素を挿入しているためです。要素をラップする場合は、代わりにメソッドを使用する必要があります。afterwrap

$('.isNav').addClass('nav').wrap('<nav class="navbar navbar-inverse"><div class="navbar-inner"></div></nav');

http://jsfiddle.net/brCuw/

于 2012-11-14T01:52:14.933 に答える
1

を使用する必要がありますwrap()before()関数にafter()渡す実際のHTMLは追加せず、要素全体に終了タグを追加します。したがって、追加した要素before()は自動的に閉じられ、後でafter()関数で閉じる「open」タグはありません。

使用例wrap

http://jsfiddle.net/ptSVA/2/

$('.isNav').addClass('nav').wrap('<nav class="navbar navbar-inverse"><div class="navbar-inner">');
于 2012-11-14T01:54:41.490 に答える