JQuery,无法更改克隆元素的ID?

时间:2011-07-03 18:04:09

标签: jquery

更新克隆元素的ID是否存在问题?我认为我的语法在这里是正确的,但它没有更新。

function addQuestion(){
// Clone the first question Container and give it a new ID
$('#questionContainer0').clone().attr('id','questionContainer'+currentQuestion).appendTo('#questionArea');


// Assign the new ID to the text area field (This is not working)
$('#question0').attr('id','asdasd');
var test = $('#question0').attr('id');
alert(test);
}

Question0是原始克隆的questionContainer0(div)的子元素(textarea)

4 个答案:

答案 0 :(得分:3)

变化

$('#question0').attr('id','asdasd');

$('#question0', '#questionContainer'+currentQuestion).attr('id','asdasd');

这会限制您在克隆元素中的搜索。

更确定的是,在将DOM中的克隆元素附加到DOM之前,您应该这样做,因为ID应该在DOM中是唯一的。

function addQuestion(){
// Clone the first question Container and give it a new ID
var newElement = $('#questionContainer0').clone().attr('id','questionContainer'+currentQuestion);
newElement.find('#question0').attr('id','asdasd');
newElement.appendTo('#questionArea');

}

答案 1 :(得分:2)

您在此处成功更改了id属性:

$('#question0').attr('id','asdasd');

但是,您尝试在下一行中使用原始(不再存在)id访问该元素:

var test = $('#question0').attr('id');

这可能是问题吗?

答案 2 :(得分:1)

您的alert是否给了您undefined?这是因为您通过Id选择元素,更改Id,然后使用jQuery通过 old id(返回空结果集)查找元素。 alert空结果集中第一个元素的id将产生undefined

答案 3 :(得分:0)

您更改了ID($('#question0')。attr('id','asdasd')),然后获取具有旧ID的元素($('#question0')。attr('id ')),不再存在。