1

我有一个简单的 JavaScript,它在单击链接时更改元素的内部 HTML,它看起来像这样:

function changeHeader(Index)
{
    var headers = new Array("Coffee tables","Side tables","Stand tables","Dinner tables","Stools","Pedestals");
    document.getElementById("header").innerHTML = headers[Index];

}

的CSSheader如下:

#header
{
    cursor: hand; 
    cursor: pointer;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

HTML基本上是这样的:

<p id="header">Press a link</p>
<a href=# onclick="changeHeader(1)">Coffee tables</a>
<a href=# onclick="changeHeader(2)">Side tables</a>
<a href=# onclick="changeHeader(3)">Stand tables</a>

等等。我的问题是我想header根据按下的链接在元素上使用不同的背景颜色。第一个链接可能是红色背景,第二个是蓝色,第三个是绿色,依此类推。

如何使用 JavaScript 将属性添加到已经存在的 CSS id?我不使用 jQuery,所以请只使用纯 JavaScript :)

4

4 回答 4

12

你可以使用style财产

document.getElementById("header").style.backgroundColor = 'red';
于 2012-10-29T13:14:06.057 回答
1

你可以稍微改变你的方法:

function changeHeader(Index) {
    var headers = [
        {color: 'red', text: "Coffee tables"},
        {color: 'blue', text: "Side tables",
        {color: '#DDD', text: "Stand tables"},
        {color: "#ACD12A", text: "Dinner tables"},
        {color: "Chuck Norris", text: "Stools"}
    ];
    var header = document.getElementById("header"),
    header.innerHTML = headers[Index].text;
    header.style.backgroundColor = headers[Index].color;
}​
于 2012-10-29T13:15:54.103 回答
0

您不需要向 ID 添加额外的属性,或者向元素添加内联样式,或者如果您不想使用内联样式,则向元素添加额外的类,这会设置正确的背景颜色。

这是一个如何在不使用 jQuery 的情况下从元素中添加/删除类的示例:http: //snipplr.com/view/3561/addclass-removeclass-hasclass/

于 2012-10-29T13:14:17.770 回答
0

请参阅此页面中的示例代码:http: //jsfiddle.net/Rd4y5/

js:

d = document.getElementById("d1");
console.log(d.style);
d.style.backgroundColor="red";
d.style.width = "300px";
d.style.height="300px";
    console.log(d.style);

html:

<div id='d1'>a<div>​
于 2012-10-29T13:21:54.710 回答