JavaScript-更改输入标签颜色?

标签 javascript css

我想通过 JavaScript 更改输入标签的颜色。我对列表项执行相同的操作并选择输入。他们都工作得很好。但是,当我以相同的方式编写标签时,它不会改变标签的颜色。我的代码不正确吗?或者是否有另一种方法以类似的方式完成此任务?

我的代码:

    //Highlights current page from submenu- This works
    link = document.getElementById("<?php echo "$link";?>");  
    link.style.background = "#CCCCCC";
    link.style.color = "#3385D6";
    link.style.fontWeight = "bold";     
    link.style.border = "1px solid";
    link.style.borderColor = "#BBBBBB";

    //Highlights current submenu tab
    subbtn = document.getElementById("<?php echo "$subTab";?>");
    subbtn.checked= true;   
    //Doesn't work
    subbtn.style.background = "#CCCCCC";
    subbtn.style.color = "#3385D6";
    subbtn.style.fontWeight = "bold";   

我的 HTML:

<input type="radio" id="reveal-email">
<li><label for="reveal-email" >Tab that i want to change</label></li>

最佳答案

根据您使用的 checked 属性,我猜测 subbtn 是一个 input type="checkbox"输入 type="radio"。因此,您根本没有设置标签的颜色和背景,这是一个单独的元素。

如果您的 HTML 在标签内部输入(通常是这种情况),那么:

var parentStyle = subbtn.parentNode.style;
parentStyle.background = "#CCCCCC";
parentStyle.color = "#3385D6";
parentStyle.fontWeight = "bold";

实例:

var subbtn = document.getElementById("subbtn");
var parentStyle = subbtn.parentNode.style;
parentStyle.background = "#CCCCCC";
parentStyle.color = "#3385D6";
parentStyle.fontWeight = "bold";
<label>
  <input type="checkbox" id="subbtn"> This is the label
</label>

(您添加的 HTML 表明您正在使用 for,因此请参见下文。)

如果您的 HTML 将它们通过与复选框的 id 匹配的 label 上的 for 属性分隔和链接,则第一行略有变化:

var parentStyle = document.querySelector('label[for="' + subbtn.id + '"]').style;

实例:

var subbtn = document.getElementById("subbtn");
var parentStyle = document.querySelector('label[for="' + subbtn.id + '"]').style;
parentStyle.background = "#CCCCCC";
parentStyle.color = "#3385D6";
parentStyle.fontWeight = "bold";
<input type="checkbox" id="subbtn">
<label for="subbtn">This is the label</label>

如果您没有以任何一种方式链接它们,则应该这样做,这样单击标签就会切换复选框。

关于JavaScript-更改输入标签颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31857582/

相关文章:

javascript - jslint.js 下载链接

html - Bootstrap Rollover Div 链接

html - 如何将鼠标指针箭头转换为鼠标悬停链接或按钮。?

javascript - onload 需要在解析时识别函数吗?

javascript - 使用 Thymeleaf 渲染 Spring ModelAndView 对象

javascript - 从 Ajax 生成的 HTML 表到 Highcharts 绘制多个系列

javascript - 谷歌地图在左上角

css - 图像顶部的按钮(但它不会停留)

javascript - 使用 CSS/Javascript 显示环绕球体的图像

css - 不同浏览器上的视差滚动图像