簡體   English   中英

JavaScript 一次替換文本中的多個字符

[英]JavaScript Replace Multiple Characters in Text at Once

我有一個表,我試圖根據表中的值着色。 因此,如果表中的值為 150%,則單元格將顯示為紅色。 如果表中的值為 50%,則該值將顯示為綠色。 但是,由於某種原因,表格中的實際文本中包含大量空格以及 % 符號。 如何用空 ('') 替換任何空格和 '%' 字符?

這是我所擁有的不起作用的:

<script type="text/javascript">

        $(document).ready(function () {
            $('#myTable td.PercentMem').each(function () {
                if ($(this).text().replace(/\s/g, '').replace('%', '') >= '100') {
                    $(this).css('background-color', '#ff0000');
                }
                else {
                    $(this).css('background-color', '#33cc33');
                }
            });
        });

    </script>

謝謝!

編輯

我很笨。 我忘了包括這些百分比中有小數點的事實。 所以,我真正處理的是“50.89%”之類的東西,到目前為止提供的解決方案將其轉換為“5089”。 我怎樣才能保留小數點?

您需要去除所有非數字字符並將結果字符串轉換為 int。 所以像這樣: parseInt($(this).text().replace(/\D/g,'')) 此外,在您的帖子中,您正在與字符串'100'進行比較,這顯然應該是一個數字。 嘗試這個:

        $(document).ready(function () {
            $('#myTable td.PercentMem').each(function () {
                if (parseInt($(this).text().replace(/\D/g,'')) >= 100) {
                    $(this).css('background-color', '#ff0000');
                }
                else {
                    $(this).css('background-color', '#33cc33');
                }
            });
        });

免責聲明:我還沒有實際測試過,但這應該可以。

你可以用這個來實現,避免使用 jQuery 到 select 元素,使用純 JavaScript:

const myCells = document.querySelectorAll('.PercentMem');

myCells.forEach(cell => {
  const cellValue = cell.textContent.replace(/\D+/g, '');
        
  cell.classList.toggle(parseInt(cellValue) >= 100 ? 'red' : 'green');
});

這是包含所有代碼的完整提琴手

暫無
暫無

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

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