簡體   English   中英

JavaScript追加/刪除元素

[英]Javascript append/remove elements

我有一個問題。 是否可以在JavaScript附加中添加delete <span>元素?

當我嘗試刪除添加的跨度時,什么也沒有發生。

像這樣:

<script type="text/javascript">
$(document).ready(function(){
    $('#SelectBoxData span').click(function(){
        var StatusID = this.id;
        var StatusIDSplit = StatusID.split("_");
        var StatusText = $('#SelectBoxData #' + StatusID).text();

        $("#SelectBox").append('<span id=' + StatusID + '>' + StatusText + '</span>');
        $("#SelectBoxData #" + StatusID).remove();

        InputValue = $("#StatusID").val();
        if(InputValue == ""){
            $("#StatusID").val(StatusIDSplit[1]);
        }
        else{
            $("#StatusID").val($("#StatusID").val() + ',' + StatusIDSplit[1]);
        }
    });

    $('#SelectBox span').click(function(){
                var StatusID = this.id;
        $("#SelectBox #" + StatusID).remove();
    });
});
</script>

<div id="SelectBoxBG">
    <div id="SelectBox"><div class="SelectBoxBtn"></div></div>
    <div id="SelectBoxData">
        <span id="StatusData_1">Admin</span>
        <span id="StatusData_2">Editor</span>
        <span id="StatusData_4">Test 1</span>
        <span id="StatusData_6">Test 2</span>
    </div>
    <input type="hidden" id="StatusID" />
</div>

請幫我。

謝謝。

是的,您可以刪除它們。 但是,您不能在它們存在之前向其添加click事件處理程序。 這段代碼:

$('#SelectBox span').click(function(){
    var StatusID = this.id;
    $("#SelectBox #" + StatusID).remove();
});

只會在代碼運行時將click事件處理程序添加到#SelectBox內的<span>元素中(因此,根據您提供的HTML,零個元素)。 如果希望事件處理程序對動態添加的元素作出反應,則需要使用.on()函數使用一種稱為事件委托的技術:

$('#SelectBox').on('click', 'span', function() {
    $(this).remove(); // equivalent to the code you had before
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM