<div id="del2">
<textarea placeholder="School" class="form-control input-lg" name="message2" id="message2" rows="1" cols="30">School</textarea>
<button id="delete1" type="button" class="btn btn-default">Delete this Widget</button></div>
码
$("#"+divid) .clone().attr('id', 'del'+ value).insertAfter($("#"+divid)).find('textarea').attr('name', 'message'+ value).attr('id', 'message'+ value).find("button").button().attr('id', 'delete'+value);
我能够在克隆时更改div和textarea的id,但问题是我无法更改按钮ID的ID 。
答案 0 :(得分:1)
这是因为您试图在<button>
元素中找到<textarea>
。我缩进了代码以使其更具可读性:
$("#"+divid)
.clone()
.attr('id', 'del'+ value)
.insertAfter($("#"+divid))
.find('textarea')
.attr('name', 'message'+ value)
.attr('id', 'message'+ value)
.find("button") // Problem is here - you are finding <button> in <textarea>
.button()
.attr('id', 'delete'+value);
完成使用.end()
提取的元素后,尝试使用.find()
(请参阅documentation),以便返回上一个选定的对象。此外,您实际上可以使用对象组合两个.attr()
方法:
$('#'+divid)
.clone()
.attr('id', 'del'+ value)
.insertAfter($('#'+divid))
.find('textarea')
.attr({
'name': 'message'+ value,
'id': 'message'+ value
})
.end() // Forces return to previously matched elements, i.e. the cloned element
.find('button')
.button()
.attr('id', 'delete'+value);