2014-10-28 55 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");。它更短,工作速度稍快。