0

jquery を使用して、(ファイルからインポートされた) html オブジェクト内のいくつかのクラスを持つ各 html タグに関数を適用しようとしましたが、機能させることができません。SE に関する他のいくつかの質問に目を通しましたが、問題の解決策が見つかりませんでした。

私の実際の使用例では、html 変数にはさらに多くのコードが含まれていますが、これは

html = '<pre class = "classy"> text </pre>'
$(html).find('.classy').each( function (x) { 
    $('<pre class = "classy">' + '<h1>' + x + '<h1>' + '</pre>')
})

'<pre class = "classy"> text </pre>'

意図した出力がより似ていた場所

'<pre class = "classy"> <h1> text </h1> </pre>'

.replaceWith も機能しなかったので、概念的に間違ったことをしていると思います。解決策/ヒントはありますか?

4

1 に答える 1

2

試す

var html = '<pre class = "classy"> text </pre>';
var a = $(html);
a.filter('.classy').each( function (i, x) { 
    $(x).wrapInner('<h1></h1>');
})

ここで、変数aには意図したコンテンツが含まれ<pre class = "classy"> <h1> text </h1> </pre>ます。

デモ:フィドル

与えられた値の下では、次のように単純化することもできます

var a = $(html);
a.each( function (i, x) { 
    $(x).wrapInner('<h1></h1>');
})

デモ:フィドル

注:の内容をahtml 文字列として取得する場合

var html = $('<div>').append(a.clone()).html();

デモ:フィドル

于 2013-03-28T02:33:52.077 に答える