所以我想要实现的是我希望一个元素将一些其他元素附加到div并更改其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 :(得分: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");
。它更短,工作速度稍快。