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 个元素(本身)。我假设您正在寻找其中的divs 。


此外,如果您div的 s 中有divs,请使用更具体的子选择器

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

这与使用带有选择器过滤器的.children方法具有相同的效果:

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

或者更简单地说,将它们全部连接到一个选择器中:

$('.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 回答