[英]How to select a text in HTML without a tag
我目前正在使用 Wordpress 插件處理捐贈表格,但我完全遇到了問題。 該插件會自動在價格選項中添加一些我不想要的單詞和字符。
我希望選項是“5 歐元”“10 歐元”“15 歐元”“自己的選項”。
當前選項的 HTML 如下所示:
<li>
<label>
<input type="radio" onchange="mollie_forms_recurring_methods_624();mollie_forms_624_totals();" data-frequency="months" data-freq="iedere maanden" data-pricetype="fixed" data-price="10.00" data-vat="" name="rfmp_priceoptions_624" value="1">
/ (€ 10,00 iedere maanden)
</label>
</li>
如您所見,它在價格之外添加了諸如“iedere maanden”和“( )”之類的詞。 我已經找到了一個 javascript 代碼,它刪除或替換了這些詞,但它也刪除了標簽內的 Radio 輸入,該輸入需要保留以使捐贈表格起作用。
我用來替換單詞的 Jquery 代碼,但也刪除了輸入:
$('.donate-box ul li label:not(input)').text(function(i,t){
return t.replace("iedere maanden", " ");
});
我無法真正編輯插件的 HTML,因為它會在插件更新時重置。
如何只選擇標簽內的文本/單詞而不刪除/編輯輸入字段?
提前致謝!
您遇到的問題是您需要修改 Node,而不是 Element 對象的文本內容。
為此,您需要遍歷每個label
並獲取其contents()
。 根據您的 HTML 結構,您可以獲取內容中的最后一個節點,並使用正則表達式刪除與您要顯示的價格無關的任何字符。 嘗試這個:
$('li label').each(function() { var node = $(this).contents().last()[0]; node.textContent = node.textContent.replace(/[^€\\d\\,]/g, ''); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <ul> <li> <label> <input type="radio" onchange="mollie_forms_recurring_methods_624();mollie_forms_624_totals();" data-frequency="months" data-freq="iedere maanden" data-pricetype="fixed" data-price="10.00" data-vat="" name="rfmp_priceoptions_624" value="1"> / (€ 5,00 iedere maanden) </label> </li> <li> <label> <input type="radio" onchange="mollie_forms_recurring_methods_624();mollie_forms_624_totals();" data-frequency="months" data-freq="iedere maanden" data-pricetype="fixed" data-price="10.00" data-vat="" name="rfmp_priceoptions_624" value="1"> / (€ 10,00 iedere maanden) </label> </li> <li> <label> <input type="radio" onchange="mollie_forms_recurring_methods_624();mollie_forms_624_totals();" data-frequency="months" data-freq="iedere maanden" data-pricetype="fixed" data-price="10.00" data-vat="" name="rfmp_priceoptions_624" value="1"> / (€ 250,00 iedere maanden) </label> </li> </ul>
您可以更具體地替換字符串以避免與單選項目中的內容混淆 With replace("iedere maanden)", " ")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.