2

jQueryコードを含むPHPドキュメントに取り組んでいます。replaceWith()関数を使用して、外側のdivを削除し、spanに置き換えています。交換することしかできず、交換できないよう<span>です<span class="something">

何故ですか?

編集:コードの例を次に示します。

デイブに感謝しますが、私は実際に上記のコードで2番目のオプションを使用しています。これが、私がやろうとしていることです。

$response[] = "jQuery('#myID').replaceWith('<span>'+jQuery('#myID').html()+'</span>');";

上記のコードは機能します。基本的に、私は<a>要素に置き換えたい要素を持って<span>おり、ajax応答でクラスを変更します。

ここで、上記のスパンのいずれかにクラスを追加すると、次のようになります。

$response[] = "jQuery('#myID').replaceWith('<span class"something">'+jQuery('#myID').html()+'</span>');";

コードが壊れていますが、jQueryステートメントの外側の二重引用符が原因ですか?

編集

<a>そのため、クラスの前後の二重引用符をエスケープすることに加えて、置き換えようとしていた私の要素の問題であることが判明しました:)。非常に迅速な支援に感謝します。クレジットが必要な場合にクレジットを付与するために登録しています:)

$response[] = "jQuery('#myID').replaceWith('<span class=\"something\">'+jQuery('#myID').html()+'</span>');";
4

2 に答える 2

4

最大の変更点は引用符の追加であるため、クラス属性が終了していない文字列を開いたままにしていないことを再確認してください。

// Broken:                 
$("div").replaceWith("<span class="something">");

// Fixed:
$('div').replaceWith('<span class="something">');
于 2010-09-03T01:32:33.393 に答える
0

読みやすくするため、またこのように混乱しないように、代わりに次の構文をjQueryDOM挿入に使用することを検討してください。

var myDiv = jQuery('#myID');
$('<span></span>').html(myDiv.html()).addClass('something').replaceAll(myDiv);

ああ、上記の質問でコードが強調表示されている方法を注意深く見ると、間違っていることがすでにわかります;)

于 2010-09-03T09:09:04.627 に答える