繁体   English   中英

如何使用 ajax 从 html 中删除一个 div

[英]how to remove a div from the html using ajax

我正在尝试从网页中删除一个 div(及其子项,如果它包含的话)。
这是我正在使用的 ajax 代码。

$.ajax({
    url: window.location,
    method: 'POST',
    dataType: 'text',
    data: {
        delete_id: 1,
        to_delete:deleteID
    }, success: function (response) {
        //Remove this node 
        $('.display_stts').removeChild(response); //It does not work 
    } 
});

ajax 代码返回这个,我想从页面中删除它。

<div class="card gedf-card">
    <div class="card-body ml-10" style="padding:5px;">
        <p class="card-text" style="color:blue; font-size:15px; text-align: justify;" name="cmtSpace" id="cmtSpace">
        
            some text some text some text 
            
        </p>
        
        <div class="text-right mr-5 replies">
            <a class="card-link reply"  href="javascript:void(0)" data-stID="124" onclick="stt_func(this)">
                <i class="fa fa-reply"></i>continue
            </a>
        </div>
    </div>
</div>
<br>

而这个ajax response html 代码位于名称为 class class="display_stts"的 div 中:

<div class="display_stts" id="display_stts">
    <!-- displaying here -->
</div>

在这个 class class="display_stts"中,我有多个元素,例如 ajax 返回的元素。但我只想删除那个特定的元素。
我怎么能做到呢?
感谢您抽出时间回答我的问题。

你可以尝试用你的 ajax 隐藏 div。首先在你的 div 中放置一个显示样式,比如内联,就像这样

<div class="display_stts" id="display_stts" style="display:inline">
<!-- displaying here -->

然后在您的 ajax 中,您可以通过将其设置为不显示来像这样在成功后隐藏

$.ajax({
url: window.location,
method: 'POST',
dataType: 'text',
data: {
    delete_id: 1,
    to_delete:deleteID
}, success: function (response) {
    //Remove this node 
    var x = document.getElementById("display_stts");
    x.style.display = "none";
    
} 

});

由于您已经拥有deleteID ,因此似乎根本不需要使用 HTML 响应:您可以检索具有data-stID属性的元素(使用$('[data-stID="' + deleteID + '"]') ),然后使用.closest()向上遍历 DOM 树,直到到达所需的元素:我们在此处定位.gedf-card

放在一起,代码应该是这样的:

$.ajax({
    url: window.location,
    method: 'POST',
    dataType: 'text',
    data: {
        delete_id: 1,
        to_delete:deleteID
    }, success: function () {
        var cardToRemove = $('[data-stID="' + deleteID + '"]').closest('.gedf-card');
        cardToRemove.remove();
    } 
});

试试这个解决方案,它会帮助你。

function RemoveJSElement() {
  var html = "<div id='myElement'><div class='display_stts' id='display_stts'><div class='card gedf-card'></div><br></div></div>";

var containerdiv = document.createElement('div');
containerdiv.innerHTML = html;

alert(containerdiv.innerHTML);

var display_stts = containerdiv.getElementsByClassName('display_stts')[0];
display_stts.parentElement.remove(display_stts);
alert(containerdiv.innerHTML);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM