在jQuery中克隆后替换值

时间:2015-07-25 14:25:13

标签: jquery replace clone

我需要clone() a并更改之后的id值。

所以这是我的代码:

$('#add').click(function() {
  var newRow = $('.accordion').eq(0).clone();
  var newRow = newRow.html().replace('item1', 'item2')
  $('#list-items').append(newRow);
});

HTML是:

<div id="add">Add row</div>
<form class="form-horizontal" id="list-items">
    <div class="panel-group accordion">
        <div class="panel panel-default">
            <div class="panel-heading">
                <h4 class="panel-title">
                    <a class="accordion-toggle" data-toggle="collapse" data-parent=".accordion" href="ui-tabs.html#item1">Item number 1</a>
                </h4>
            </div>
            <div id="item1" class="panel-collapse collapse">
                ...
            </div>
        </div>
    </div>
</form>

之后出现问题: 此href="ui-tabs.html#item1"更改为href="ui-tabs.html#item2",但不会更改为id="item1"。因此id="item2"不会更改为form-control

有任何帮助吗?

3 个答案:

答案 0 :(得分:0)

更新
float

double

供参考 - http://plnkr.co/edit/4TK40ctShe585IjbVd1i?p=preview

答案 1 :(得分:0)

也调整了HTML的代码,试试这个。

$('#add').click(function() {
    var newRow = $('.accordion').eq(0).clone();
    $('#list-items').append(newRow);
    $('#list-items span:last-child').attr("id",'item2');    //THIS ID SHOULD BE A DYNAMICALLY GENERATED THING.
});

HTML:

<div id="add">Add row</div>
<form class="form-horizontal" id="list-items">
    <div class="panel-group accordion">
        <div class="panel panel-default">
            <div id="item1" class="panel-collapse collapse">
                <span>  ...</span>  //ADDED A SPAN
            </div>
        </div>
    </div>
</form>

答案 2 :(得分:-1)

你有一个错字......试试这个:

$('[data-max-check] input[type=checkbox]').on('click', function(e){
  var $parent = $(this).closest('[data-max-check]');
  var max = $parent.data('max-check');
  var chk = $parent.find('input[type=checkbox]:checked').size();
  if(chk > max){
    alert('You can only select up to ' + max);
    e.preventDefault();
  }
});