我是jQuery的新手。我正在克隆一个特定的HTML块,并尝试更改最后克隆的html元素的name
或id
,class
,但我不能。我可以找到并提醒我要更改的元素名称,但我无法更改它。希望你能帮助我..提前谢谢。
我的代码
jQuery(document).on("click",".smclass",function(){
var html = jQuery(this).closest(".entry-edit").clone().appendTo(".main-col-inner").html();
html = jQuery(html).find('.start').attr('name','optional[2][type]').attr('id', 'Type1');
}
HTML
<div class="entry-edit">
<!-- html codes -->
<button id="Addfield" title="Field Ekle" type="button" class="smclass" onclick="" style="float: right;"><span><span><span>Field Ekle</span></span></span></button>
<!-- html codes -->
<select id="Type" name="optional[1][type]" class="start">
<option value="0">Date</option>
<option value="1">Text</option>
<option value="2">Select</option>
</select>
<!-- html codes -->
</div>
答案 0 :(得分:3)
您的代码只是将一个html字符串放入一个变量中,然后使用所述html创建一个新的jQuery对象。您没有选择新元素并进行更改
//Just remove the .html() call and you will have the cloned element
var ele = jQuery(this).closest(".entry-edit").clone().appendTo(".main-col-inner");
ele.find('.start').attr('name','optional[2][type]').attr('id', 'Type1');
您也不需要进行多次.attr调用,您可以传递一个具有您想要设置的名称值对的对象
ele.find(".start").attr({
"name":"optional[2][type]",
"id":"Type1"
});
答案 1 :(得分:-1)
只是尝试反之亦然
var clonedObject = jQuery(this).closest(".entry-edit").clone();
clonedObject .find('.start').attr('name','optional[2][type]').attr('id', 'Type1');
clonedObject.appendTo(".main-col-inner").html();