还有另一种方法可以多次替换特定元素吗?

时间:2019-03-05 16:18:08

标签: javascript jquery

如果我想用一个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()的东西来获取它?

3 个答案:

答案 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>