【问题标题】:Set Text Color and Text Next to Checkbox设置复选框旁边的文本颜色和文本
【发布时间】:2019-08-03 05:35:27
【问题描述】:

如何设置复选框旁边的文本颜色(和文本)?

<div style="float: left;">
    <input type="checkbox" id="idCheckbox1" onClick="myCheckbox('idCheckbox1')" value=1><label>Checkbox 1</label></input></div>
<script>
function myCheckbox(idCheckbox)
{
    var ctlCheckbox = document.getElementById(idCheckbox);
    var ctlCheckText = ctlCheckbox.parentNode.getElementsByTagName("LABEL")[0];
    var text = ctlCheckText.innerText;

    if (true == ctlCheckbox.checked)
        alert('checked');
    else
        alert('not checked');
    if (ctlCheckbox.checked == true)
       ctlCheckText.innerText = 'smurfs';
    else
       ctlCheckText.InnerText = 'gargamel';
}
</script>

搜索互联网有所帮助。我能够获取文本并确定检查状态,但是设置颜色或更改文本比最初不起作用。

我想将文本设置为蓝色,所以我在想下面的方法,这不起作用,很烦人。

 if (true == ctlCheckbox.checked)
     ctlCheckText.innerHTML = '<span style="color:#0000FF">' + text + '</span>';
 else
     ctlCheckText.innerHTML = '<span style="color:#000000">' + text + '</span>';

想法?

Here 是我创建的示例项目?

【问题讨论】:

    标签: javascript html checkbox input styles


    【解决方案1】:

    你快到了。而不是设置内联样式,而是使用一个类,然后根据checkbox addremove 的状态从classListblue

    您也可以只使用if (ctlCheckbox.checked) 而不是if (ctlCheckbox.checked == true),因为它将被评估为真,但如果您仍想使用,请使用=== 而不是==,即if (ctlCheckbox.checked === true)

    function myCheckbox(idCheckbox) {
      var ctlCheckbox = document.getElementById(idCheckbox);
      var ctlCheckText = ctlCheckbox.parentNode.getElementsByTagName("LABEL")[0];
      var text = ctlCheckText.innerText;
    
      if (ctlCheckbox.checked) {
        ctlCheckText.innerHTML = 'smurfs';
        ctlCheckText.classList.add('blue')
    
      } else {
        ctlCheckText.innerHTML = 'gargamel';
        if (ctlCheckText.classList.contains('blue')) {
          ctlCheckText.classList.remove('blue')
        }
      }
    }
    .blue {
      color: blue;
    }
    <div style="float: left;">
      <input type="checkbox" id="idCheckbox1" onClick="myCheckbox('idCheckbox1')" value='1'><label>Checkbox 1</label>
    </div>

    【讨论】:

    • 我知道,但忘记了===,必须刷新我的知识。我对 classList 的东西一无所知,谢谢。我也需要调查一下。我在 else 子句中有一个类型,InnerHTML 而不是 'innerHTML`,这就是为什么我永远无法让 Gargamel 显示。效果很好,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2013-08-22
    • 2016-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-24
    • 1970-01-01
    • 2018-11-10
    相关资源
    最近更新 更多