Javascript在循环中更改标签颜色

时间:2014-01-03 20:05:07

标签: javascript html

我在php页面上创建了很多labels,他们都有一个像

的id
  • <label id="1_p">
  • <label id="2_p">
  • <label id="3_p">
  • <label id="4_p">
  • <label id="5_p"> ...

我必须将它们的颜色更改为#D8D8D8,我想使用for循环来实现它:

for(i=1;i<13;++i) {
 document.getElementById(i+'_p').style.color='#D8D8D8';
}

顺便说一句,Firefox告诉我document.getElementById(...)为null。有什么建议吗?

4 个答案:

答案 0 :(得分:2)

首先,不要按编号启动id值/它违反了HTML规范

看一下这个答案:What are valid values for the id attribute in HTML?

答案 1 :(得分:1)

http://jsfiddle.net/fenderistic/nKuJw/

 for(var i=1;i<6;i++) {
   document.getElementById(i+'_p').style.color='#D8D8D8';
 }

注意我使用的是i++而不是++i

答案 2 :(得分:0)

我会为所有标签添加一个类,如

<label id="5_p" class="colorOrSomething">

然后您可以使用该类查找它们并更改颜色

document.getElementsByClassName('colorOrSomething')

答案 3 :(得分:0)

使用int添加string应该有效。确保您已将i指定为var

作为javascript的替代方案,您可以使用CSS3 Attribute Selectors

label[id*='_p'] {color:#D8D8D8 }

附录

允许类标识符以数字开头,但ID标识符不是。

[id='1_p'] {
 /* does work */
}

#1_p {
  /* doesn't work */
}

source