我使用以下内容:
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();
但没有效果。
答案 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。
<强>段强>
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;
答案 3 :(得分:0)
嗯,我想正确的方法是:$(transferTemplate).find('label').remove();
https://api.jquery.com/remove/ 就像倒数第二个例子一样......