带有复选框的Javascript颜色更改
Javascript change of color with checkbox
我这里有一个javascript,它可以在选中复选框时更改颜色,但它必须依靠使用外部库才能工作。它有可能不使用函数()之类的外部库吗?
<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');
}
});
您可以使用:
function isChecked(elem) {
elem.parentNode.style.color = (elem.checked) ? 'black' : 'red';
}
jsFiddle示例
是的,这可以在不需要库的情况下完成。一个相当直接的翻译是:
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);
});
<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就是您的选择。
try,
function isChecked(){
var chk = document.getElementById("termsChkbx");
if(chk.checked){
chk.parentElement.style.color = "black";
}
else{
chk.parentElement.style.color = "red";
}
}
<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>
纯javascript:
document.getElementById('termsChkbx').onclick = function() {
document.getElementById('termsChkbx').parentElement.style.color = this.checked ? "black" : "red";
};
试试这个:
$(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');
}
});
});
<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>
相关文章:
- 我们如何使用css或JavaScript在i/j上更改句点(点)的颜色
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- 使用CSS/JavaScript更改剑道图工具提示文本颜色
- 比较javascript中的浮动并更改最高浮动的颜色
- Javascript通过列表项的函数和css来更改背景颜色
- Javascript没有从数组中选择背景颜色
- 如何更改编辑单元格上方单元格的背景颜色(Javascript、Google电子表格)
- 只使用一个整数表示颜色-Javascript
- 更改表格字体颜色Javascript
- 在表格中应用动态行颜色 Javascript/VBscript
- 背景更改时动态更改文本颜色(javascript)
- 更改文本链接颜色 JavaScript 或 CSS
- 两个选择的rgb颜色之间的随机颜色(JavaScript)
- 改变边框颜色Javascript
- 更改所有文档链接颜色Javascript
- 从数组中选择随机背景颜色.Javascript / html
- 改变颜色JavaScript不起作用
- 生成两种颜色之间的颜色javascript
- 我正在尝试生成一个随机颜色(javascript),并在单击按钮时将结果应用于按钮.如何将JS与Jquery结合起来
- 按特定顺序更改背景颜色 JavaScript