2014-10-28 57 views
1

所以我想要實現的是我想要一個元素將其他元素附加到div並更改其ID屬性(或類似的東西)。更改元素的ID多次

我已經試過這樣的事情

$('#add3').click(function(){ 
      $('#add3').attr("id", "add4"); 
      $('.third_row1').append('something to append'); 
     });  

,也嘗試過這樣的事情:

$('#add').click(function(){ 
      var vari = $("<div id='add2'>add another user</div>"); 
      $('#add').remove(); 
      $('.third_row1').append(vari); 
      $('.third_row1').append('something to append'); 
     });  

所以點擊一個按鈕(如第二例)對第三沒有影響,第四... n點擊
與第二個例子相同的東西

在此先感謝求助

UPD

好了,所以這裏是我如何產生,我想追加選擇

<jsp:useBean id="obj1" class="com.Users" scope="page"/> 
    <div class="third_row1"> 
     <select name="mySelect1" id="mySelect1"> 
      <c:forEach var="item1" items="${obj1.items}"> 
       <option>${item1}</option> 
      </c:forEach> 
     </select> 
    </div>  

所有我想要做的就是添加同一選擇,但不同的ID和名稱

+0

請分享您的HTML代碼,並請解釋問題 – 2014-10-28 09:59:03

+0

請make a http://jsfiddle.net。另外,** var vari =「

add another user
」; **(不應該在它周圍有** $()**)。 – ggdx 2014-10-28 10:01:21

+0

由於元素ID是動態的,因此請使用委託事件處理程序。例如,'$(document).on(「click」,「#add3」,function(){' – Regent 2014-10-28 10:02:21

回答

0

由於元素ID動態更改,因此應使用delegated event handlers with .on()

例如:

$(document).on("click", "#add3", function() { 
    $('#add3').attr("id", "add4"); 
    $('.third_row1').append('something to append'); 
}); 

如果所有這些元素(#add#add3)是內頁靜態元素,這將是更好的性能比較,而不是使用document這個元素:

$("static_element_selector").on("click", "#add3", function() { 

並且只需要注意:由於this內部事件處理程序指向點擊DOM元素,因此可以使用this.id = "add4"而不是$('#add3').attr("id", "add4");。它更短,工作速度稍快。