1

最初:私はjQueryが初めてです。jQueryを使って段落タグをh2タグに入れてみました。Web サイトは CMS 上に構築されているため、HTML は CMS によって生成されます。しかし、いくつかの HTML コードと、以前に試した短い jQuery コードを提供できます。

HTML:

<div id="container">
    <h2>Title goes here</h2>
</div>

jQuery:

$(document).ready(function(){
    $('#container').find('h1').replaceWith(function(){
        return '<h2>' + $(this).text() + '</h2>';
    });
    $('<p></p>').prependTo('h2');
});

jQuery コードは、私の HTML コードでこれを行います (これはそれほど悪くはありません。最適化する必要があるだけです)。

<div id="container">
    <h2>
    <p></p>
    Title goes here
    </h2>
</div>

私の問題は、「タイトルがここに入る」をpタグに入れたいということです。これを行うためのjQuery関数はありますか、それとも完全に間違っていますか? 私はすでにjQuery API Documentationを見てきましたが、私に役立つものは何も見つかりませんでした。助言がありますか?

乾杯

PS: ここにフィドルがあります:デモ

4

3 に答える 3

4

これはとても簡単です: with の内容を選択し、それらをすべてh2withcontentsでラップしpますwrapAll。これを の関数構文と組み合わせて、replaceWithこれをすべて 1 行で行うことができます。

$('h1').replaceWith(function(this) {
    return $(this).contents().wrapAll('<h2/>').wrapAll('<p/>').closest('h2');
});

より良い質問は、なぜこれをしたいのかということです。h2要素に要素を含めることはできませんp

フィドルを更新しました。

于 2013-10-30T07:43:43.383 に答える
2

あなたがしようとしているのは無効なHTML です。そのため、ブラウザがこれらのタグを有効な方法で解析するため、タグを文字列に追加しても機能しません。そのため、pタグを閉じてからタグをレンダリングしますh1

ここに画像の説明を入力

以下のコードを [ Validate By Direct Input ] タブにコピーして貼り付け、ご自身で確認してください

<!DOCTYPE html>
  <head>
    <title>Test</title>
    <meta charset="utf-8" />
  </head>
  <body>
    <h1><p>This is invalid</p></h1>
  </body>
</html>
于 2013-10-30T07:43:58.963 に答える
0

あなたが探しているのは jquery clone() だと思います。必要な段落を複製し、それを必要な dom 要素に追加します。http://api.jquery.com/clone/

于 2013-10-30T07:43:06.063 に答える