多次更改元素的ID

时间:2014-10-28 09:57:29

标签: javascript jquery html

所以我想要实现的是我希望一个元素将一些其他元素附加到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和名称

1 个答案:

答案 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");。它更短,工作速度稍快。

相关问题