[英]Remove all label elements from JQuery variable
我使用以下內容:
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();
但沒有一個工作。
首先,您需要在每一行中選擇要刪除標簽的行:
像這樣:
$(".row").each(function( index ) {
$(this).find("label").remove(); //find label at each row and remove.
});
我希望這有幫助。
我認為您誤解了 html() 的結果。 它不返回 Jquery DOM 對象。 結果只是一個字符串表示。 只需刪除 .html() ,我相信您將能夠調用您想要的函數。
var transferTemplate = $('#transfersRow');
這將返回 HTML 的字符串表示形式:
var transferTemplate = $('#transfersRow').html();
您可以像這樣從此字符串中刪除標簽:
$(transferTemplate).find('label').remove();
然而,這一切都會創建一個新的jQuery 對象,其中包含 HTML 減去標簽。 它不會更新transferTemplate
變量。
相反,您可以將$(transferTemplate)
分配給一個新變量。
這將允許您刪除標簽並仍然可以訪問更新的 HTML。
片段
var transferTemplate = $('#transfersRow').html(), template = $(transferTemplate); template.find('label').remove(); $('textarea').val(template.html());
textarea { width: 100%; height: 10em; }
<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>
好吧,我想正確的方法是: $(transferTemplate).find('label').remove();
https://api.jquery.com/remove/就像倒數第二個例子...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.