如何使用jQuery更改元素的名称和id?

时间:2014-08-20 07:45:10

标签: javascript jquery html

我是jQuery的新手。我正在克隆一个特定的HTML块,并尝试更改最后克隆的html元素的nameidclass,但我不能。我可以找到并提醒我要更改的元素名称,但我无法更改它。希望你能帮助我..提前谢谢。

我的代码

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>

2 个答案:

答案 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();