清除动态创建的div

时间:2016-10-31 05:41:12

标签: javascript

我想清除一个动态创建的div,以下是创建div的函数:我尝试过:

jQuery('#sel').html('');
 $( ".sel" ).empty();

但没有任何帮助

       function constructor_obj(parent, title, address, pincode,village,mobile,owner, specs) {
        this.parent = parent;
        this.title = title;
        this.address = address;
        this.pincode = pincode;
        this.village = village;
        this.mobile = mobile;
        this.owner = owner;
        this.specs = specs;

        var div = document.createElement('sel');
        div.style = "width:auto";
        div.className = "w3-card-4";
        div.innerHTML = '\
  <div class="w3-card-4" style="width:auto">\
<div class="w3-container">\
    <h1 class="title"><b>Dr. Abc</b></h1>\
</div>\
<div class="w3-container">\
    <h2 class="specialty">Specialty :<b> Physiotherapist</b></h2>\
    <hr>\
    <p class="address">Address :<b> Marketing and Advertising. Seeking a new job and new opportunities.</b></p>\
      <p class="pincode">Fee Details:500-600rs</p>\
      <p class="village">Fee Details:500-600rs</p>\
      <p class="mobile">Fee Details:500-600rs</p>\
      <p class="owner">Fee Details:500-600rs</p>\
      \
</div>\
<button class="w3-btn-block w3-dark-grey">More Details</button>\
  ';
        this.parent.appendChild(div);
        div.getElementsByClassName('title')[0].innerHTML = this.title;
        div.getElementsByClassName('specialty')[0].innerHTML = this.specs;
        div.getElementsByClassName('address')[0].innerHTML = this.address;
        div.getElementsByClassName('pincode')[0].innerHTML = this.pincode;
        div.getElementsByClassName('village')[0].innerHTML = this.village;
        div.getElementsByClassName('mobile')[0].innerHTML = this.mobile;
        div.getElementsByClassName('owner')[0].innerHTML = this.owner;
        this.parent="";
    }

我在这里调用这个函数:

function generatefilterrecord() {

      for (var i = 0; i < name.length; i++) {
        obj = new constructor_obj(document.body,name[i],address[i], pincode[i],village[i],mobile[i],owner[i],spec[i]);
      }
   });
}

3 个答案:

答案 0 :(得分:0)

var div = document.createElement('sel');实际上会创建一个类似于<sel></sel>的标记。你真正想做的是:

var div = document.createElement('div');
div.id = 'sel';

这将生成类似<div id="sel"></div>的标记,现在您可以使用$('#sel')中的标准JQuery ID表示法访问它(以及在其上运行所有其他JS)。要清除所有内容,只需执行div.innerHTML = ''

即可

请注意,为了完全看到它,您需要通过将其添加到另一个元素innerHTML或类似内容(我没有检查)以某种方式将其放到页面上看看你是否这样做,如果你这样做,忽略这一部分,我只是安全了。)

答案 1 :(得分:0)

Jquery有两种获取dom的方法:一种是通过id获取,另一种是使用class; 但你不是上面的两个。您可以在html中添加id,或使用该类。你得到dom的方式:jQuery(&#39;#sel&#39;)。html(&#39;&#39;); $(&#34; .sel&#34;)。empty()不是正确的方法。你可以选择第二个。就像这样:

$(&#34; .w3-card-4&#34;)。remove();

旁边 var div = document.createElement(&#39; sel&#39;); 改成 var div = document.createElement(&#39; div&#39;); 不过会更好。

答案 2 :(得分:0)

您可以使用Element.innerHTML

  

Element.innerHTML属性设置或获取HTML语法描述   元素的后代。 More info here

document.getElementById('sel').innerHTML = '';
<div id="sel">some content here</div>