从JQuery变量中删除所有标签元素

时间:2015-07-29 19:35:06

标签: javascript jquery

我使用以下内容:

var transferTemplate = $('#transfersRow').html(); 

为了在变量中存储一些html代码,结果为:

<div class="form-group row">

     <div class="col-lg-4">
         <label for="inc[1].a">Counterparty</label>
         <input type="text" class="form-control" id="inc[1].a" 
                name="inc[1].a" placeholder="Enter Counterparty">
     </div>

</div>

现在我希望能够从html代码中删除所有标签。我试过了:

$(transferTemplate).find(label).remove();

$(transferTemplate).remove('label');

$(transferTemplate).filter('label').remove();

但没有效果。

4 个答案:

答案 0 :(得分:2)

首先,您需要选择要在每行删除标签的行:

像这样:

$(".row").each(function( index ) {
   $(this).find("label").remove(); //find label at each row and remove.
});

我希望有所帮助。

答案 1 :(得分:2)

我认为你误解了html()的结果。它不会返回Jquery DOM对象。结果只是一个字符串表示。只需删除.html(),我就确定您可以调用所需的函数。

var transferTemplate = $('#transfersRow');

答案 2 :(得分:1)

这将返回HTML的字符串表示形式:

var transferTemplate = $('#transfersRow').html(); 

您可以从此字符串中删除标签,如下所示:

$(transferTemplate).find('label').remove();

然而,所有这一切都创建了一个 new jQuery对象,其中HTML减去了标签。它不会更新transferTemplate变量。

相反,您可以将$(transferTemplate)分配给新变量。

这将允许您删除标签,并仍然可以访问更新的HTML。

<强>段

&#13;
&#13;
var transferTemplate = $('#transfersRow').html(),
    template = $(transferTemplate);

template.find('label').remove();

$('textarea').val(template.html());
&#13;
textarea {
  width: 100%;
  height: 10em;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="transfersRow">
  <div class="form-group row">
    <div class="col-lg-4">
      <label for="inc[1].a">Counterparty</label>
      <input type="text" class="form-control" id="inc[1].a" name="inc[1].a" placeholder="Enter Counterparty">
    </div>
  </div>
</div>
<hr>
<strong>Output</strong>
<textarea></textarea>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

嗯,我想正确的方法是:$(transferTemplate).find('label').remove();

https://api.jquery.com/remove/ 就像倒数第二个例子一样......