通过jQuery用它的索引替换html元素

时间:2012-11-04 21:43:53

标签: javascript jquery replace

我正在尝试替换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来替换整个{{1}}?

4 个答案:

答案 0 :(得分:3)

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

Fiddle

您应该使用.eq()按索引过滤jQuery对象内的匹配元素集。 $('.results')也只有1个元素(本身)。我假设你正在寻找里面的div


此外,如果div内有div,请使用更具体的child selector

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

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

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

或者更简单地说,在一个选择器中将它连接起来:

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

Fiddle

还有很多其他方法可以通过jQuery完成这项工作,但这些方法应该绰绰有余。 =]

答案 1 :(得分:1)

.get检索索引处的DOM元素。您要找的是.eq

答案 2 :(得分:0)

var index = 0
$($('.results div')[index]).replaceWith('<div id="243">Result 1 content</div>')

答案 3 :(得分:0)

var element = $('.results').find('div');