Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript函数查找并更改列的CSS(如果它有多个DIV)_Javascript_Html_Css_Function - Fatal编程技术网

JavaScript函数查找并更改列的CSS(如果它有多个DIV)

JavaScript函数查找并更改列的CSS(如果它有多个DIV),javascript,html,css,function,Javascript,Html,Css,Function,我试图让JavaScript更改列的颜色,如果它包含2个以上的div元素,则添加一个msg变量。我的代码在下面,我知道它还没有完成,所以希望得到一些指导 我不使用jQuery,只使用浏览器JS HTML: <table> <tr> <th>Column A</th> <th>Column B</th> </tr> <tr id="row

我试图让JavaScript更改列的颜色,如果它包含2个以上的div元素,则添加一个msg变量。我的代码在下面,我知道它还没有完成,所以希望得到一些指导

我不使用jQuery,只使用浏览器JS

HTML:

<table>
    <tr>
        <th>Column A</th>
        <th>Column B</th>       
    </tr>

    <tr id="row">
        <td id="columnA">
            <div id="d1"></div>
        </td>
        <td id="columnB">
            <div id="d1"></div>
            <div id="d2"></div>
            <div id="d3"></div>
        </td>       
    </tr>
</table>

A列
B栏
脚本:

<script>
function alertTooMany() {
    var row = document.getElementById('row'), // Get Row
    var col = row.getElementsByTagName('td'), // Get Columns in row
    var div = col.getElementsByTagName('div'), // Get Div in columns
    var num = divs.length; // count DIV tags

            // prepare and display message
            if (num < 2) { // If number of divs is less than 2
                msg = "Column Open";
            }
            else if (num > 2){ // If number of divs is greater than 2
                msg = "Warn: Column overfull!";
            }
            else { // If number of divs is 2
                msg = "Column Full"; 
            }
            document.getElementById('message').innerHTML = msg;
}
</script>

函数alertTooMany(){
var row=document.getElementById('row'),//Get row
var col=row.getElementsByTagName('td'),//获取行中的列
var div=col.getElementsByTagName('div'),//在列中获取div
var num=divs.length;//计数DIV标记
//准备并显示消息
if(num<2){//如果div的数量小于2
msg=“列打开”;
}
else如果(num>2){//如果div的数量大于2
msg=“警告:列已满!”;
}
else{//如果div的数量为2
msg=“列已满”;
}
document.getElementById('message').innerHTML=msg;
}
提前谢谢


<script>
    function alertTooMany() {
        var row = document.getElementById('row'); // Get Row
        var cols = row.getElementsByTagName('td'); // Get Columns in row

        // Iterating through columns
        for (var i = 0; i < cols.length; i++) {
            var col = cols[i];

            var divs = col.getElementsByTagName('div'); // Get Div in column
            var num = divs.length; // count DIV tags

            // prepare and display message
            if (num < 2) { // If number of divs is less than 2
                msg = "Column Open";
            }
            else if (num > 2){ // If number of divs is greater than 2
                msg = "Warn: Column overfull!";

                // Finding header with same index as overfull column
                var headers = document.querySelectorAll('th');
                var matchingHeader = headers[i];

                if (matchingHeader) {
                    matchingHeader.style['color'] = 'red';
                }

                col.style['color'] = 'red';
            }
            else { // If number of divs is 2
                msg = "Column Full"; 
            }
            document.getElementById('message').innerHTML = msg;
        }
    }

    alertTooMany();
</script>
函数alertTooMany(){ var row=document.getElementById('row');//获取行 var cols=row.getElementsByTagName('td');//获取行中的列 //遍历列 对于(变量i=0;i2){//如果div的数量大于2 msg=“警告:列已满!”; //查找索引与满列相同的标题 var headers=document.querySelectorAll('th'); var matchingHeader=标题[i]; if(匹配头){ matchingHeader.style['color']='red'; } col.style['color']='red'; } else{//如果div的数量为2 msg=“列已满”; } document.getElementById('message').innerHTML=msg; } } 警报过多();

函数alertTooMany(){
var row=document.getElementById('row');//获取行
var cols=row.getElementsByTagName('td');//获取行中的列
//遍历列
对于(变量i=0;i2){//如果div的数量大于2
msg=“警告:列已满!”;
//查找索引与满列相同的标题
var headers=document.querySelectorAll('th');
var matchingHeader=标题[i];
if(匹配头){
matchingHeader.style['color']='red';
}
col.style['color']='red';
}
else{//如果div的数量为2
msg=“列已满”;
}
document.getElementById('message').innerHTML=msg;
}
}
警报过多();

函数alertTooMany(){
var row=document.getElementById('row');//获取行
var cols=row.getElementsByTagName('td');//获取行中的列
//遍历列
对于(变量i=0;i2){//如果div的数量大于2
msg=“警告:列已满!”;
//查找索引与满列相同的标题
var headers=document.querySelectorAll('th');
var matchingHeader=标题[i];
if(匹配头){
matchingHeader.style['color']='red';
}
col.style['color']='red';
}
else{//如果div的数量为2
msg=“列已满”;
}
document.getElementById('message').innerHTML=msg;
}
}
警报过多();

函数alertTooMany(){
var row=document.getElementById('row');//获取行
var cols=row.getElementsByTagName('td');//获取行中的列
//遍历列
对于(变量i=0;i2){//如果div的数量大于2
msg=“警告:列已满!”;
//查找索引与满列相同的标题
var headers=document.querySelectorAll('th');
var matchingHeader=标题[i];
if(匹配头){
<table>
    <tr>
        <th>Column A</th>
        <th>Column B</th>
    </tr>
    <tr id="row">
        <td id="columnA">
            <div id="d1">1</div>
        </td>
        <td id="columnB">
            <div id="d1">1</div>
            <div id="d2">2</div>
            <div id="d3">3</div>
        </td>
    </tr>
</table>
<div id="message"></div>
function alertTooMany() {
    var row = document.getElementById('row'), // Get Row
        col = row.getElementsByTagName('td'); // Get Columns in row

    for (i = 0; i < col.length; i++) {
        var div = col[i].getElementsByTagName('div');
        var num = div.length;
        if (num < 2) { // If number of divs is less than 2
            msg = "Column Open";
        } else if (num > 2) { // If number of divs is greater than 2
            msg = "Warn: Column overfull!";
            for (i = 0; i < div.length; i++) {
                div[i].style.color = 'red';
            }
        } else { // If number of divs is 2
            msg = "Column Full";
        }
    }

    document.getElementById('message').innerHTML = msg;
}
alertTooMany();
<table>
<tr>
    <th>Column A</th>
    <th>Column B</th>
</tr>
<tr id="row">
    <td id="columnA">
        <div id="d1">01</div>
        <span class="message"></span>
    </td>
    <td id="columnB">
        <div id="d1">11</div>
        <div id="d2">12</div>
        <div id="d3">13</div>
        <span class="message"></span>
    </td>
</tr>
</table>
<script>
function alertTooMany() {
    var row = document.getElementById('row'); // Get Row
    var tds = row.getElementsByTagName('td'); // Get Columns in row

    for (var i = 0; i < tds.length; i++) {
        var divs = tds[i].getElementsByTagName('div'); // Get Div in columns
        num = divs.length; // count DIV tags
        // prepare and display message
        if (num < 2) { // If number of divs is less than 2
            msg = "Column Open";
            tds[i].style.color="green";
        } else if (num > 2){ // If number of divs is greater than 2
            msg = "Warn: Column overfull!";
            tds[i].style.color="red";
        } else { // If number of divs is 2
            msg = "Column Full"; 
        }
        document.getElementsByClassName("message")[i].innerHTML = msg;
    }
}
</script>