0

html() メソッドの変数に格納しているコード ブロックからいくつかの要素を削除しようとしています。例。

<div id="block">
  <div id="temp"><span>dsgdgdgdgdg</span></div>
  <ul>
    <li>dsfdsfsdfds</li>
    <li>dsfdsfsdfds</li>
    <li>dsfdsfsdfds</li>
  </ul>

</div>

JS コード

    var html = $('#block').html();
    html.remove('#temp');
4

3 に答える 3

1

文字列を取得すると、その文字列に対して jQuery メソッドを呼び出すことはできなくなります。文字列から jQuery オブジェクトを再作成する必要がありますが、そうする代わりに、まず jQuery オブジェクトのコピーを作成し、div を削除してから、html 文字列を取得できます。

var $block = $('#block').clone();
$('#temp', $block).remove();
var html = $block.html();

JSFiddle

于 2013-04-24T21:58:04.323 に答える
0

コードには、克服すべき 2 つの問題があります。

1 つ目はremove(selector)、セレクターに一致するコレクションからアイテムを削除する方法です。子要素を削除したい場合は、これを実行したくありません。

2 つ目は、html変数が jQuery オブジェクトではなく、html を含む文字列であることです。

これが両方を克服する方法です...

var html = $('#block');

// Some other code...

$('#temp', html).remove();

更新...上記の例では、元のブロックから要素を削除します。文字列を操作するには、それをjQueryオブジェクトに戻す必要があります-ここに例があります...

var html = $('#block').html();

var test = $('<div />').html(html); // get string into a jQuery object
$('#temp', test).remove(); // remove the temp element
html = test.html(); // get the update html string

alert(html);
于 2013-04-24T21:59:29.453 に答える