从querySelectorAll(“ input”)排除所有文本类型输入

时间:2018-09-03 07:28:52

标签: javascript html css

我有以下设置,其中添加了自定义选中标记以设置单选按钮的样式。 但它也会在文本类型输入中添加该复选标记。 var change = function(){     Array.from(document.querySelectorAll(“ table”))。forEach((element,index)=>     {       Array.from(element.querySelectorAll(“ input”))。forEach((myinp,index)=>       {               if(myinp.checked == true){                    myinp.parentNode.parentNode.classList.add(“ active”);               }其他{                   myinp.parentNode.parentNode.classList.remove(“ active”);               }       });     }); } //更改功能结束 Array.from(document.querySelectorAll(“ table”))。forEach((element,index)=> {     Array.from(element.querySelectorAll(“ input”))。forEach((myinp,index)=>     {        var checkmark = document.createElement(“ span”);        checkmark.classList.add(“ checkmark”);        myinp.parentNode.appendChild(checkmark);        myinp.addEventListener(“ change”,已更改);     }); }); 表体tr td:第一个孩子{ 位置:相对; } .confirmit-table tbody tr input [type ='radio'] [type ='checkbox'] { 可见度:隐藏 }  / *创建自定义复选框* / .checkmark,.dotmark {   位置:绝对;   最高:0;   左:0;   高度:100%;   宽度:25像素;   背景颜色:#eee; } input [type ='text'] {   宽度:20px; } / *在鼠标悬停时,添加灰色背景色* / 表tbody tr:hover输入〜.checkmark {   背景颜色:#ccc; } / *在鼠标悬停时,添加灰色背景色* / 表tbody tr:hover输入〜.dotmark {   背景颜色:#ccc; } / *选中此复选框时,添加蓝色背景* / 表tbody tr输入:选中〜.checkmark {   背景颜色:#11448d; } / *选中此复选框时,添加蓝色背景* / 表tbody tr输入:选中〜.dotmark {   背景颜色:#11448d; } / *创建选中标记/指示符(未选中时隐藏)* / .checkmark:after,.dotmark:after {   内容:“”;   位置:绝对;   显示:无;   最高:50%; } / *选中时显示选中标记* / 表tbody tr输入:选中〜.checkmark:之后{   显示:块; } / *选中时显示选中标记* / 表tbody tr输入:选中〜.dotmark:之后{   显示:块; }           / *为复选标记/指示器设置样式* / 表tbody tr .checkmark:之后{   左:9px;   最高:30%;   宽度:5像素;   高度:10px;   边框:纯白色;   border-width:0 3px 3px 0;   -webkit-transform:旋转(45deg);   -ms-transform:旋转(45deg);   变换:rotate(45deg); } 表tbody tr .dotmark:之后{     左:8px;     顶部:8px;     宽度:10px;     高度:10px;     背景颜色:#fff; } / *自定义复选框/单选按钮* / 表格标签{   宽度:350像素;   显示:块;   保证金:0px;   padding:5px 10px; } 表格标签:悬停{ 保证金:0px; }    .confirmit-table tbody tr {   背景颜色:#f5f5f5; } 。活性{   背景:#6081b9!重要; } <表格>                                                                                                                                                                                                                                  我已经使用javascript设置了单选按钮的样式(即,在单选类型输入旁边添加了自定义检查标记元素)单选按钮,但是我不希望这种样式仅在javascript中应用文本类型输入。 如何从querySelectorAll(“ input”)中排除文本类型输入

2 个答案:

答案 0 :(得分:3)

console.log(document.querySelectorAll('input:not([type=text])'));

答案 1 :(得分:3)

更改

element.querySelectorAll("input")

element.querySelectorAll("input[type=radio]")

仅获取单选按钮。

如果您还需要复选框:

element.querySelectorAll("input[type=radio], input[type=checkbox]")