簡體   English   中英

如何在沒有標簽的 HTML 中選擇文本

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

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