【问题标题】:Delete Selected div in html在 html 中删除选定的 div
【发布时间】:2014-01-02 17:59:04
【问题描述】:

我正在处理收件箱页面,我必须在其中显示邮件。 有一个 jsp 代码在新邮件到达数据库时递增。

我已经放置了一个删除按钮,以便可以删除所选邮件。但是当我单击 Del 按钮时,由于功能放置错误,整个收件箱都会被删除!

代码是(也在http://pastie.org/8593077):

<script>
function deleteCheckBox(){
  if (document.getElementById('checkboxid').checked){
        var answer = confirm('Are you sure you want to delete this checkbox?');
         if (answer)
           {
           $(".del_mail").remove();
           }
         }else{
           alert("Pls check the checkbox.");
          }
}
</script>

<form id ="login" name="login" action="" method="post" class="form">
                <div id="error"></div>              
                <fieldset>
                    <div><b>Inbox</b>
                    </div>
                </fieldset>
                <fieldset>
                <%
                    int i=0;
                    while(i<3)
                    {

                %>
                    <div class="row">
                        <div class="del_mail">
                            <section class="col col-16">
                                <input type="checkbox" id="checkboxid" name="checkboxname">
                            </section>

                            <section class="col col-6">
                                <label>
                                    <p>From</p>
                                </label>
                            </section>

                            <section class="col col-6">
                                <label>
                                    <a href="message.html">Subject</a>
                                </label>
                            </section>

                                <button align="right" id="btnDeleteid" onclick="deleteCheckBox()" name="btnDeletename">Delete</button>
                        </div>

                    </div>
                <% i++;
                    } %>
    </fieldset>
</form>

我想问这里如何删除特定的行或Div?

【问题讨论】:

  • “整个收件箱”是什么意思?您的 del_mail div 几乎包含整个收件箱(没有标题)。
  • 没关系,我知道了。
  • 您正在为 jquery 函数使用类选择器,因为该类应用于所有行,因此它将清除每一行。您需要获得一种机制来区分行。然后将微分因子传递给javascript函数,得到需要的div。
  • 您应该为每一行使用 ID,而不是使用类删除。
  • @SurjithSM:是的!我明白你的意思。如何使动态 id 好像有 1000 封邮件我将如何生成动态 id?

标签: javascript html


【解决方案1】:

使用此代码:

<button align="right" id="btnDeleteid" onclick="deleteCheckBox(this)" name="btnDeletename">Delete</button>

在上述 HTML 中,您需要使用函数中的 this 发送当前复选框的对象。

在 JS 代码中使用这个:

function deleteCheckBox(that){
  if (that.checked){
     var answer = confirm('Are you sure you want to delete this checkbox?');
     if (answer) {
       that.parentNode.remove();
     }
  } else {
    alert("Pls check the checkbox.");
  }
}

您可以在我采用的参数中获取该对象。并通过获取它,您可以选择要删除的父节点。

在您的代码中,您使用的是.del_mail,它选择了所有 具有类名 del_mail 的元素并删除所有这些 元素。

【讨论】:

  • @user3094320 使用我发布的代码。这将在 html 部分中使用,并且在 JS 部分中使用,您可以重命名 that 但只能在 JS 中使用。
【解决方案2】:

你正在使用一个类“.del_mail”,所以所有这个类的 div 都被删除了(删除的 jquery 调用实际上在所有这些元素上循环)。

一个可行的解决方案:您可以根据您的增量变量放置一个不同的 id,例如 id="del_mail_3",并通过将您的 i 传递给 deletecheckbox 来删除正确的元素 $("#del_mail_3")

【讨论】:

    【解决方案3】:

    使用下面的代码,这将起作用(请在您的项目中添加 jquery 库)

    $(document).ready(function(){
        $(".del_mail").click(function(){
    
         if (document.getElementById('checkboxid').checked){
            var answer = confirm('Are you sure you want to delete this checkbox?');
            if (answer)
            {
              $(this).remove();
            }
             else{
               alert("Pls check the checkbox.");
            }
         }
        });
    });
    

    【讨论】:

    • 添加 jQuery 是一个选项,我已经在上面给出了我的答案,如果您不喜欢请忽略,但请不要投反对票。我们在这里为您提供帮助
    • 来吧,当你选择 $(this).remove();在 $(".del_mail").click(function(){} ,那么它只会删除点击的项目。这就是为什么“this”关键字代表
    • 试一试您提出的代码...这里我有不止一封邮件...我想要的功能是:单击复选框,然后按删除...然后只删除 div。
    • 我已根据您的要求修改了代码,这在前面给出的问题陈述中没有提到。现在试着让我知道,如果它不起作用,那么它不会影响你已经投反对票
    猜你喜欢
    • 2011-04-14
    • 1970-01-01
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    相关资源
    最近更新 更多