簡體   English   中英

使用jQuery刪除兩個html標記之間的文本

[英]Remove text between two html tags using jQuery

我有以下HTML:

<span>
<input type="text" value="0" size="10" class="element text currency" readonly="readonly" name="element_18_1" id="element_18_1"> .       
<label for="element_18_1">Dollars</label>
</span>

我想使用jQuery刪除輸入和標簽標簽之間的點。

我嘗試了以下代碼,但沒有結果: $('#element_18_1').contents(':gt(2)').remove(); 謝謝

這將刪除所有不在標簽內的文本(作為元素)

 $(document).ready(function(){ current = $('#element_18_1'); siblings = $('#element_18_1').siblings(); parent = $('#element_18_1').parent(); $(parent).html(''); $(parent).append(current).append(siblings); }) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <span> <input type="text" value="0" size="10" class="element text currency" readonly="readonly" name="element_18_1" id="element_18_1"> . <label for="element_18_1">Dollars</label> </span> 

您可以通過加入一些行來使其更短。 我試圖逐步展示它

但是,您始終可以選擇一種更簡單的方法,一種更簡單的方法,氏族的可讀和可理解的方法,一種純JavaScript的方法。

element_18_1.nextSibling.data=" ";

 element_18_1.nextSibling.data=" "; 
 <span> <input type="text" value="0" size="10" class="element text currency" readonly="readonly" name="element_18_1" id="element_18_1"> . <label for="element_18_1">Dollars</label> </span> 

您可以使用contents()slice() ,即:

 var el1 = $("#element_18_1"), el2 = $("#element_18_1 + label"), contents = el1.parent().contents(); contents.slice(contents.index(el1) + 1, contents.index(el2)).remove(); el1.after(" "); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <span> <input type="text" value="0" size="10" class="element text currency" readonly="readonly" name="element_18_1" id="element_18_1"> . <label for="element_18_1">Dollars</label> </span> 

如此處所述 ,我建議過濾出文本節點並刪除它們:

$('span')
  .contents()
  .filter(function() {
    return this.nodeType == 3; //Node.TEXT_NODE
  }).remove();

見小提琴

這段代碼有點粗糙,但應該可以

$("span:contains('.')").html($("span:contains('.')").html().replace('.',''));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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