1

インデックスを介して取得したものを置き換えようとしてHTML elementいますが、これを試していますが、機能しません:

<div class="results">
    <div id="61">Result 1 content</div>
    <div id="8762">Result 2 content</div>
    <div id="234">Result 3 content</div>
</div>

<script>
    var index = 0;
    var html = '<div id="243">Result 1 content</div>';
    var element = $('.results').get(index);
    element.replaceWith(html);
</script>

HTML elementそれを取得して全体を置き換えるにはどうすればよいindexですか?

4

4 に答える 4

3
$('.results div').eq(index).replaceWith(html);

フィドル

.eq()jQuery オブジェクト内の一致する要素のセットをそのインデックスでフィルター処理するために使用する必要があります。また$('.results')、1 つの要素 (それ自体) しかありません。divその中の sを探していると思います。


また、divの中に があるdiv場合は、より具体的な子セレクターを使用します。

$('.results > div').eq(index).replaceWith(html);

これは、セレクター フィルターで.childrenメソッドを使用するのと同じ効果があります。

$('.results').children(':eq(' + index + ')').replaceWith(html);

または、より単純に、すべてを 1 つのセレクターに連結します。

$('.results > div:eq(' + index + ')').replaceWith(html);

フィドル

jQuery でこれを行う方法は他にもたくさんありますが、これらで十分です。=]

于 2012-11-04T21:46:42.660 に答える
1

.getインデックスで DOM 要素を取得します。あなたが探しているのは.eq

于 2012-11-04T21:47:13.023 に答える
0
var index = 0
$($('.results div')[index]).replaceWith('<div id="243">Result 1 content</div>')
于 2012-11-04T21:48:37.390 に答える
0
var element = $('.results').find('div');
于 2012-11-04T21:49:56.267 に答える