2011-07-03 28 views
0

我試圖使用jquery的attr()函數更新表單元素的ID。用於調試目的。JQuery,嘗試訪問文本區域ID時出現'未定義'消息

我似乎能夠爲其他元素賦值,比如attr('title','test')工作得很好。只有當我想更新身份證時。

我想要更新ID的全部理由是,我正在動態構建表單域並需要爲它們分配ID。

<!DOCTYPE html> 
<html> 
<head> 

<script src="http://code.jquery.com/jquery-latest.js"></script> 
    <script> 
    function addQuestion(){ 
    $('#question0Container').clone().appendTo('#questionArea'); 
    $('#add').attr('id','newid'); 
    alertText = $('#add').attr('id'); 
    alert("The id is:" + alertText); 
    } 
</script> 
</head> 
<body> 

<div id="questionArea"> 
    <div id="question0Container"> 
    <textarea id="question0" name="question0"></textarea><p>Answers</p> 
    </div> 
</div> 

<a href="#" onClick="addQuestion();" id="add" title="Add a question">add question</a> 

</body> 
</html> 

回答

1

您正在更改ID,但您的選擇器仍使用舊ID。所以,找不到任何元素。 更改此:

alertText = $('#add').attr('id'); 

這樣:

alertText = $('#newid').attr('id'); 
+0

謝謝,只是意識到:對 –

1

我想你設置按鈕,而不是克隆問題的ID。

一旦問題被克隆並寫入DOM你必須用相同的ID兩個問題,所以設定的ID,而你仍然有對它的引用,就像這樣:

$('#question0Container').clone().attr('id','newid').appendTo('#questionArea'); 

和刪除下一行

希望幫助

1

你分配一個新的ID給<a>$('#add').attr('id','newid');,爲此選擇$('#add').attr('id');將返回什麼。

我猜你想分配一個ID,剛克隆textarea的,在這種情況下,你應該使用類似:

function addQuestion(){ 
     $newTextarea = $('#question0Container').clone().appendTo('#questionArea'); 
     $newTextarea.attr('id','newid'); 
     alert("The id of the new textarea is:" + $newTextarea.attr("id")); 
    } 
+0

是的,這正是我想做的事。謝謝比約恩! –

相關問題