Javascript 通过jQuery将html元素替换为其索引
我正在尝试替换通过其索引获得的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
<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');