javascript - 使用 Javascript 根据值动态更改颜色或文本

标签 javascript

大家好,希望获得有关根据值更改文本颜色的帮助。如果值为零或负数,我希望它为红色,如果值为 +,我希望它为绿色。下面是完整 html 中的一小部分代码,但我认为这些是关键部分。 Here is a JSFiddle如您所见,该表是动态的。当您将数据输入起始金额时,它会自动计算结束金额。起始金额加到产生总金额的账单金额上。我也不确定事件“onchange”是否正确。感谢您的意见和建议。

<p><b>Starting Amount: &#36; <input id="money" type="number"   onkeyup="calc()"></b></p>

<table>
<tr>
<th>Bill Ammount</th>
</tr>
<tr>
<td><input type="number"  class="billAmt" id="billAmt" onkeyup="calc()">      </td>
</tr>
</table>

<input type="hidden" id="total" name="total" value="0">
<p><b>Ending Amount: &#36; <span id="totalAmt"         onchange="colorChange(this)">0</span></b></p>

<script type="text/Javascript">
var myElement = document.getElementById('totalAmt');
function colorChange() {
    if('myElement' > 0) {
        totalAmt.style.color = 'green'; 
        } else {
                totalAmt.style.color = 'red';
    }
}


function calc() {
var money = parseInt(document.querySelector('#money').value) || 0;
var bills = document.querySelectorAll('table tr input.billAmt') ;
var billTotal = 0;

for (i = 0; i < bills.length; i++) {
  billTotal += parseInt(bills[i].value) || 0;
}

totalAmt.innerHTML = money + billTotal;
}
</script>

最佳答案

您只需使用一个函数即可获得所需的结果。无需检查 DOM 元素的 innerHTMLtextContext 来获取数量,只需引用保存它的变量即可。

var myElement = document.getElementById('totalAmt');

function calc() {
  var money = parseInt(document.querySelector('#money').value) || 0;
  var bills = document.querySelectorAll('table tr input.billAmt');
  var billTotal = 0;

  for (i = 0; i < bills.length; i++) {
    billTotal += parseInt(bills[i].value) || 0;
  }
  totalAmt.innerHTML = money + billTotal;
  myElement.style.color = money + billTotal <= 0 ? 'red' : 'green';
  
}
<p><b>Starting Amount: &#36; <input id="money" type="number" onkeyup="calc()"></b></p>

<table>
  <tr>
    <th>Bill Ammount</th>
  </tr>
  <tr>
    <td><input type="number" class="billAmt" id="billAmt" onkeyup="calc()"></td>
  </tr>
</table>

<input type="hidden" id="total" name="total" value="0">
<p><b>Ending Amount: &#36; <span id="totalAmt">0</span></b></p>

关于javascript - 使用 Javascript 根据值动态更改颜色或文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43077194/

相关文章:

javascript - 检查 iframe 是否加载到 $(document).ready 中

javascript - 如何重用克隆的元素?

javascript - ExtendScript 从搜索的 Comp 结果中获取索引号

java - 将 Java 正则表达式转换为 Javascript 正则表达式

javascript - 禁止在选择时打字

javascript - 如果数据输入正确会出现错误提示

javascript - Vue.js:如何使动态创建的 HTML 使用作用域 CSS?

javascript - 使用 jQuery 生成 DIV 网格,但如果它不是 10 x 10,则会出现奇怪的行为

javascript - 多行 var f = function() {/* Code */} 应该得到一个分号

javascript - map 中的 ReactJS onClick 处理程序返回未定义