Javascript 通过jQuery将html元素替换为其索引

Javascript 通过jQuery将html元素替换为其索引,javascript,jquery,replace,Javascript,Jquery,Replace,我正在尝试替换通过其索引获得的HTML元素,我正在尝试此操作,但它不起作用: <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

我正在尝试替换通过其索引获得的HTML元素,我正在尝试此操作,但它不起作用:

<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元素

您应该使用按索引过滤jQuery对象内的匹配元素集。另外$'.results'本身只有1个元素。我猜你是在找里面的那个女主角

此外,如果您的div中有div,请使用更具体的:

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

$('.results').children(':eq(' + index + ')').replaceWith(html);
或者更简单地说,在单个选择器中连接所有内容:

$('.results > div:eq(' + index + ')').replaceWith(html);
有许多其他方法可以通过jQuery实现这一点,但这些方法应该已经足够了

您应该使用按索引过滤jQuery对象内的匹配元素集。另外$'.results'本身只有1个元素。我猜你是在找里面的那个女主角

此外,如果您的div中有div,请使用更具体的:

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

$('.results').children(':eq(' + index + ')').replaceWith(html);
或者更简单地说,在单个选择器中连接所有内容:

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

有许多其他方法可以通过jQuery实现这一点,但这些方法应该已经足够了

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

。get在索引处检索DOM元素。你要找的是

为什么你要替换整个元素只是为了改变它的ID?哦,是的,只是用所有这些变量污染了全局名称空间。我相信不会出什么差错的P使用函数包装器,大声呼喊。这只是一个例子,我需要根据情况逐个或通过进行包装,有时我通过JSON获得一个结果列表,我需要替换从0开始的元素。在其他情况下,我只需要在运行时更新它们。我假设您要替换的元素是.results元素的子元素,如果不是,或者如果您需要帮助调整该函数以与您的用例配合使用,请给出一个叫声。get将获得本机DOM元素,它没有replaceWith方法,因为它不是jQuery对象。为什么要替换整个元素只是为了更改其ID?哦,是的,只是用所有这些变量污染了全局命名空间。我相信不会出什么差错的P使用函数包装器,大声呼喊。这只是一个例子,我需要根据情况逐个或通过进行包装,有时我通过JSON获得一个结果列表,我需要替换从0开始的元素。在其他情况下,我只需要在运行时更新它们。我假设您要替换的元素是.results元素的子元素,如果不是,或者如果您需要帮助调整函数以使用您的用例,请使用holler。get将获取本机DOM元素,该元素没有replaceWith方法,因为它不是jQuery对象。
var index = 0
$($('.results div')[index]).replaceWith('<div id="243">Result 1 content</div>')
var element = $('.results').find('div');