簡體   English   中英

從 JQuery 變量中刪除所有標簽元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM