Javascript更改颜色与复选框

时间:2015-11-30 15:26:58

标签: javascript

我在这里有一个javascript,当复选框被选中时,它可以改变颜色,但它必须依赖于使用外部库才能工作。是否有可能不使用外部库,如function()?

<p style="color: red; font-weight: bold;">I have read and agree to the terms and conditions
            <input type="checkbox" id="termsChkbx" onchange="isChecked(this,'sub1')"/></p>

JS:

<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
$(document).ready(function(){
    $('#termsChkbx').change(function(){
        if($(this).is(':checked'))
        {
            $(this).parent('p').css('color','black');
        }
        else
        {
             $(this).parent('p').css('color','red');
        }
    });  

6 个答案:

答案 0 :(得分:2)

您可以使用:

function isChecked(elem) {
    elem.parentNode.style.color = (elem.checked) ? 'black' : 'red';
}

<强> jsFiddle example

答案 1 :(得分:1)

是的,这可以在不需要库的情况下完成。一个相当直接的翻译是这样的:

document.addEventListener("DOMContentLoaded", function() {
    document.getElementById('termsChkbx').addEventListener("change", function(){
        if(this.checked) {
           this.parentNode.style.color = "black";
        } else {
           this.parentNode.style.color = "red";
        }
    }, false);
});

或者像这样短一点:

document.addEventListener("DOMContentLoaded", function() {
    document.getElementById('termsChkbx').addEventListener("change", function(){
      this.parentNode.style.color = this.checked ? "black" : "red";
    }, false);
});

答案 2 :(得分:0)

<input type="checkbox" id="termsChkbx" onchange="termsChecked()"/>

编写一个简单的JS函数:

function termsChecked() {
    var chk = document.getElementById('termsChkbx');
    if (chk.checked) {
         chk.parentNode.style.color = 'black';
    } else {
         chk.parentNode.style.color = 'red';
    }
}

这确实将JS代码放在HTML标记中,这不是更好的选择,但这适用于不支持DOMContentLoaded事件的旧浏览器。如果您只定位现代浏览器,则可以使用 ActionListener

答案 3 :(得分:0)

试,

&#13;
&#13;
function isChecked(){

  var chk = document.getElementById("termsChkbx");
  if(chk.checked){
     chk.parentElement.style.color  = "black";
  }
  else{
     chk.parentElement.style.color  = "red";
  }
}
&#13;
<p style="color: red; font-weight: bold;">I have read and agree to the terms and conditions
            <input type="checkbox" id="termsChkbx" onchange="isChecked()"/></p>
&#13;
&#13;
&#13;

答案 4 :(得分:0)

纯javascript:

DescribeInstancesRequest

答案 5 :(得分:-2)

试试这个:

&#13;
&#13;
    $(document).ready(function(){
        $('#termsChkbx').on('change', function(e){
          e.preventDefault();
            if($(this).is(':checked'))
            {
                $(this).parent().css('color','black');
            }
            else
            {
                 $(this).parent().css('color','red');
            }
        });  
      });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<div>
    <p style="color: red; font-weight: bold;">I have read and agree to the terms and conditions
    <input type="checkbox" id="termsChkbx" /></p>
</div>
&#13;
&#13;
&#13;