javascript copy div更改innerHTML id

时间:2016-01-06 04:57:03

标签: javascript jquery html css

我需要通过更改按钮的ID(增加它们)将内容从一个div复制到另一个div

样品:

<script type="text/javascript">
  function add(){
    document.getElementById('two').innerHTML = document.getElementById('one').innerHTML;
  }
</script>

<div id="one">
  <button id="button_1" >Button_1</button>
</div>

<div id="two"></div>

<button onclick="add();">Add</button>

这当然无法正常运作。

结果应如下:

<div id="two">
  <button id="button_2" >Button_2</button>
</div>

如何做到这一点的简单方法?

4 个答案:

答案 0 :(得分:2)

如果你想复制按钮,点击一个按钮就可以了,我想..

document.getElementById('button').onclick = duplicate;


var i = 0;
var original = document.getElementById('one');

function duplicate() {
    var clone = original.cloneNode(true); // "deep" clone
    clone.id = "one" + ++i; // there can only be one element with an ID
    original.parentNode.appendChild(clone);
  
}
<div id="one">
    <button id="button_1" >Button_1</button>
</div>


<button id="button" style="color:red">Add</button>

答案 1 :(得分:0)

你在找这样的东西吗?熟练掌握jQuery遍历后,您甚至可能不需要为每个按钮指定ID。可能是一个普通的课程可能会很好地为你服务。

&#13;
&#13;
$(function() {
    var last = $('.container');
    var curr = last;
    
    $('#add').on('click', function() {
        last = curr.clone();
        last.find('button').attr('id', function() {
            return 'button_' + ( $('div.container').length + 1 );
        })
        .html(function() {
            return 'Button_' + ( $('div.container').length + 1 );
        }).end()
        .insertAfter( curr );
        curr = last;
    });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
    <button id="button_1" >Button_1</button>
</div>
<button id="add">Add</button>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

使用JQuery:

function add( fromId, toId ){
    content = $('#'+fromId).clone();
    button = content.find('button');
    if( button.length == 1 ){
        buttonId = button.attr('id');
        number = buttonId.match(/\d+/g);
        number = parseInt(number[0]) + 1;
        button.attr('id','button_' + number);
        button.html('Button_' + number);
    }
    $('#'+toId).html(content.html());
}

致电

add('one','two');

答案 3 :(得分:0)

我在&#39; id&#39;中做了一些小改动。包装div。

     <div id="1" class="button">
        <button id="button_1" >Button_1</button>
    </div>

   <button onclick="add();">Add</button>

    <script type="text/javascript">
        function add(){
            var count = document.querySelectorAll('.button').length;
            var newCount = count+1;
            var elDiv = document.createElement('div');
            elDiv.setAttribute("id", newCount);
            elDiv.setAttribute("class", "button");
            elDiv.innerHTML = '<button id="button_"+newCount+">Button_'+newCount+"</button>";

            document.getElementById(count).appendChild(elDiv);
        }
    </script>

然而,它可以使用jQuery以更简单的方式完成。希望这会有所帮助。