....</div> DIVは次のパターンに従います。 クラス名は常に ExternalClass で始まりますが、 DIVには他の属性はなく class "> ....</div> DIVは次のパターンに従います。 クラス名は常に ExternalClass で始まりますが、 DIVには他の属性はなく class "> ....</div> DIVは次のパターンに従います。 クラス名は常に ExternalClass で始まりますが、 DIVには他の属性はなく class " />

jQuery - クラス名に基づいてDIVを削除する

jQueryを介してページ上のすべてのDIVを削除することは可能ですか?コンテンツをそのまま維持してください - このパターンはありますか?

<div class="ExternalClass85AC900AB26A481DBDC8ADAE7A02F039">....</div>

DIVは次のパターンに従います。

  • クラス名は常に ExternalClass で始まりますが、

  • DIVには他の属性はなく class があります。 (これはSharePointにあります)

ありがとう。

4
DIVはclass属性のみを持ち、その他の属性はのみする必要があります。すべてのソリューションが素晴らしいですが、誰かがこの問題の追加を提供することができますか?
追加された 著者 Alex,
これは私が検索した最初の結果だと笑ってしまいました。私の検索やOPには言及していませんが、SharePointのためにおそらくこの問題が起きているのでしょうか?良い質問のために+1。
追加された 著者 JᴀʏMᴇᴇ,
編集:最初に、これはSharePoint上であなたに気付かなかった。
追加された 著者 JᴀʏMᴇᴇ,

7 答え

はい、セレクタで始まる属性 replaceWith メソッド:

$('[class^="ExternalClass"]').filter(function() { 
  return this.attributes.length === 1; 
}). replaceWith(function() {
  return $(this).html();
});
4
追加された
これらのすべての回答の問題の1つ:class属性のみを持ち、他の属性を持たないDIVを削除する必要があります。
追加された 著者 Alex,
ありがとう、リッチ。なぜ return this.attributes.length === 1; に戻りますか?再度、感謝します :)
追加された 著者 Alex,
追加の self 変数を使用する必要はありません
追加された 著者 dfsq,
@dfsq前回の実装では、jQueryオブジェクトの作成をやり直すのは便利でしたが、 replaceWith はすべての一致する要素で機能するので、 each 呼び出しは不要でした。
追加された 著者 Rich O'Kelly,
@Alex回答が更新されました。
追加された 著者 Rich O'Kelly,
@Alexこれは、1つの属性(この場合、class属性であることが保証されている)を持つ、これにマッチした要素のセットをフィルタリングします。 - この場合はtrueを返し、そうでない場合はfalseを返します。詳細については、jQuery Filterメソッドを見てください。
追加された 著者 Rich O'Kelly,
$('[class^="ExternalClass"]').replaceWith(function() {
    return $(this).html();
});
2
追加された
ありがとう、dfsq。質問への私のコメントと要件の第2の箇条書きを参照してください:DIVはclass属性だけを持ち、他の属性は持たないようにしてください。これまでのところすべての答えはこれを無視しています。誰にでも解決策がありますか?
追加された 著者 Alex,

これを試すには、selector ^ = で始まる属性を使用します。

$('div[class^="ExternalClass"]').each(function(){
    $(this).replaceWith($(this).html());
});
1
追加された

HTMLを書き直す必要があります。

$("div [class^=ExternalClass]") will select the elements.

innerHTMLをつかみ、それを要素の後に追加してから要素を削除します。

1
追加された
var $text = ""; 
$.each($("div"), function(){
    $text = $text + this.html();
});
document.write($text);
1
追加された

divから内側のhtmlを取得します。 divを削除した後にコンテンツを貼り付けるために、親タグまたは前のタグを取得します。 Jqueryには、わかりやすいreplace関数があるかもしれませんが、これは簡単です。

.remove()を使ってdivを取り除くことができるはずです。

$( "[class $ = 'ExternalClass']")。remove();
id * =私はどちらかを忘れるかもしれない。

Revised: http://api.jquery.com/replaceWith/

1
追加された
それはクラスではなくIDを選択します。
追加された 著者 Diodeus - James MacFarlane,
追加された 著者 Yogurt The Wise,
彼らは上記の機能を持っていて、見つかっただけで動作するように見えます。
追加された 著者 Yogurt The Wise,

サンプルHTML:

<div class="ExternalClass85AC900AB26A481DBDC8ADAE7A02F039">foo</div>
<div class="ExternalClass85AC900AB26A481DBDC8ADAE7A02sdfsdsdfF039">bar</div>

サンプルJquery:

$('div[class^="ExternalClass"]').each(function() {
  $(this).contents().unwrap();
});

出力:

foo bar

(wihtout divs)

フィールドをheres:

http://jsfiddle.net/6hbhL/

1
追加された