ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript – 如何删除动态创建的div?

2019-06-09 00:22:01  阅读:195  来源: 互联网

标签:jquery javascript asp-net-mvc asp-net-mvc-4


我有一个以下代码使用jstree插件加载数据树视图,插件附加到MVC4的索引视图

<div id="jstree_demo_div">
    <ul>
        <li class="jstree-closed">Root node 1
            <ul>
                <li class="c1">child1</li>
                <li class="c1">child2</li>
            </ul>
        </li>
        <li class="jstree-closed">Root node 2
            <ul>
                 <li class="c1">child3</li>
                 <li class="c1">child4</li>

           </ul>
        </li>
  </ul> 
</div>

<div id="Divtxt1"></div>
<h2>Index</h2>
@section Scripts{
    <script src="Scripts/jstree.min.js"></script>
    <script> 
       $(document).ready(function () {//{ "theme": { "icons": true }
           $('#jstree_demo_div').jstree();

           $(document).on('click', '.c1', function () {
               var nodeText = $(this).text();
               //alert(nodeText);
               $('#Divtxt1').append('<div style="display:inline-block;border:1px solid black" ' + 'id=' + nodeText + '>' +
                   '<textarea style=width:100px;height:100px;visibility:visible;' + 'id=txta' + nodeText + '>' + nodeText +
                   ':</textarea>')
               .append('<input type="button" class="del" value="Del"' + 'id=' +'btn-' + nodeText + ' />')
               .append('</div><br />');
           });

           $(document).on('click', '.del', function () {
               var btnId = $(this).attr('id');
               var coll = btnId.split('-');
               alert(coll[1]);
               //alert( $(this).attr('id') )
               alert($(this).find('textarea[id=txta'+coll[1]+']').text());
               alert( $(this).closest('div').html() );
           });
        });
    </script>

    }

上面的代码将使用< textarea>动态添加div.用户单击任何父节点的子节点时的按钮.按钮的目的是删除它的div(因此它将删除textarea以及带有它的按钮).但我遇到的问题是按钮不会删除它.

另一个是以下代码:
  alert($(this).find(‘textarea [id = txta’coll [1]’]’).text());

应该在textarea中显示文本,但它也不显示.那么如何删除按钮所在的div?

解决方法:

有两个问题,首先他们使用append()方式不正确,它不像字符串连接那样工作.其次,您需要删除父div元素

$(document).ready(function() { //{ "theme": { "icons": true }
  $('#jstree_demo_div').jstree();

  $(document).on('click', '.c1', function() {
    var nodeText = $(this).text();
    //alert(nodeText);
    var html = '<div style="display:inline-block;border:1px solid black" ' + 'id=' + nodeText + '>' + '<textarea style=width:100px;height:100px;visibility:visible;' + 'id=txta' + nodeText + '>' + nodeText + ':</textarea>' + '<input type="button" class="del" value="Del"' + 'id=' + 'btn-' + nodeText + ' /></div><br />';
    $('#Divtxt1').append(html);
  });

  $(document).on('click', '.del', function() {
    $(this).closest('div').remove();
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/jstree.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/themes/default/style.min.css" rel="stylesheet" />
<div id="jstree_demo_div">
  <ul>
    <li class="jstree-closed">Root node 1
      <ul>
        <li class="c1">child1</li>
        <li class="c1">child2</li>
      </ul>
    </li>
    <li class="jstree-closed">Root node 2
      <ul>
        <li class="c1">child3</li>
        <li class="c1">child4</li>

      </ul>
    </li>
  </ul>
</div>

<div id="Divtxt1"></div>
<h2>Index</h2>

标签:jquery,javascript,asp-net-mvc,asp-net-mvc-4
来源: https://codeday.me/bug/20190608/1201532.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有