如果我想用一个id多次替换一个元素:
$("#anIdElement").replacewith("#anotherIdElement");
这应该行不通,所以我的问题是:什么可以用一个元素多次替换一个特定元素。
示例:
<table>
<tr>
<td id="theFirsttd">Original content</td>
</tr>
<tr>
<td id="atd">Replace the current content by the original</td>
</tr>
<tr>
<td id="atd">Replace the current content by the original</td>
</tr>
</table>
这里的问题是我不能用名为atd的ID替换元素,我只能一次。我对吗 ?
因此,是否可以使用类似remove()
然后append()
的东西来获取它?
答案 0 :(得分:0)
您可以将要更改的所有id放入数组并在其上循环
var array = ['theFirsttd', 'atd']
for (var item of array) {
$(`#${item}`).attr("id", "newId");
}
请注意,如果您在somes元素上具有相同的ID名称(由于ID应该是唯一的,所以这不应该发生。
希望这会有所帮助
答案 1 :(得分:0)
首先,您的HTML无效,因为两个对象共享相同的ID-可以通过制作这些类来解决。其次,假设,您只是使用jQuery将一个对象的内容复制到另一个对象,您可以执行以下操作:
$('.atd').html( $('#theFirsttd').html() );
答案 2 :(得分:0)
在jQuery中,您可以使用以下代码,但首先必须在示例中修复html:
<table>
<tr>
<td id="theFirsttd">Original content</td>
</tr>
<tr>
<td class="atd">Replace the current content by the original</td>
</tr>
<tr>
<td class="atd">Replace the current content by the original</td>
</tr>
</table>
<script>
// reemplace all the items (jQuery)
$(function(){ // <- wait for the DOM
var $first = $('#theFirsttd');
$('.atd').each(function{ // <- eval each element with atd class selector
$(this).replaceWith($first.clone()) // <- replace each one with first td clone
});
});
</script>