使用javascript更改颜色

使用javascript更改颜色,javascript,jquery,Javascript,Jquery,也许我不清楚。假设我有三行,并使用第二行上的复选框,那么我只希望该行更改颜色,其他行将保持不变。对不起,我解释得不好 row.insertCell(3).innerHTML = '<input type="checkbox" value="check" onclick="ChangeBackgroundColor(this)">' function ChangeBackgroundColor(status){ if (status.checked == true) {

也许我不清楚。假设我有三行,并使用第二行上的复选框,那么我只希望该行更改颜色,其他行将保持不变。对不起,我解释得不好

row.insertCell(3).innerHTML = '<input type="checkbox" value="check" onclick="ChangeBackgroundColor(this)">'

function ChangeBackgroundColor(status){
    if (status.checked == true) {
        var x = document.getElementById("myTableData").getElementsByTagName("tr")
        x[1].style.backgroundColor = "green"; 
row.insertCell(3).innerHTML=''
功能更改背景颜色(状态){
如果(status.checked==true){
var x=document.getElementById(“myTableData”).getElementsByTagName(“tr”)
x[1].style.backgroundColor=“绿色”;

尝试迭代标记:

function ChangeBackgroundColor(status) {
    if (status.checked == true) {
        var x=document.getElementById("myTableData").getElementsByTagName("tr");
        for (var i=0; i<x.length; ++i) {
            x[i].style.backgroundColor = "green";
        }
    }
}

您需要遍历
x
中包含的所有元素并设置它们的颜色:

function ChangeBackgroundColor(status){
    if (status.checked) {
        var x = document.getElementById("myTableData").getElementsByTagName("tr");
        for (var i = 1; i < x.length; i++) {
             x[i].style.backgroundColor = "green"; 
        }
    }
}

JavaScript没有一次更改多个元素属性的功能

我将使用
for
循环

(function(){
        var c,d;
        HTMLCollection.prototype.LP=NodeList.prototype.LP=Array.prototype.LP=function(a,b){
            d=this.length;
            if(!b)
                for(c=0;d>c;c++)a(c);
            else
                for(c=0;d>c;c++){if(!a(c))break}
            }
}())
现在使用
querySelectorAll

var q=document.querySelectorAll(".class, tagName or #id");
q.LP(function(i){
    q[i].style.backgroundColor="#ffb"
})

您需要循环查看
x
中包含的所有元素并设置它们的颜色。可能我不清楚。假设我有三行,并使用第二行上的复选框,那么我只希望该行更改颜色,其他行将保持不变。很抱歉我的解释不好。可能我不清楚。假设我有三行,并使用第t行上的复选框wo,那么我只希望那一行改变颜色,其他行保持不变。很抱歉我解释得不好。也许我不清楚。假设我有三行,使用第二行上的复选框,那么我只希望那一行改变颜色,其他行保持不变。很抱歉我解释得不好。太棒了,谢谢@jcubic,但是,如果你不知道的话d我问,这会改变复选框的颜色,如果我想改变整行怎么办?我尝试过使用“previoussibling”,但似乎不起作用。@korvar它应该改变行的颜色而不是复选框。
function ChangeBackgroundColor(status){
    if (status.checked) {
        status.parentNode.style.backgroundColor = "green";
    }
}

// jQuery alternative:
$('#myTableData').on('change', ':checkbox', function(e) {
    if (this.checked) {
        $(this).closest('tr').css('background-color', 'green');
    }
});
(function(){
        var c,d;
        HTMLCollection.prototype.LP=NodeList.prototype.LP=Array.prototype.LP=function(a,b){
            d=this.length;
            if(!b)
                for(c=0;d>c;c++)a(c);
            else
                for(c=0;d>c;c++){if(!a(c))break}
            }
}())
var q=document.querySelectorAll(".class, tagName or #id");
q.LP(function(i){
    q[i].style.backgroundColor="#ffb"
})