0

我使用一些 JavaScript 来更改我的 HTML 中某些 div 的颜色,并且它们有两个问题。第一个是我有一个 CSS 三角形,我需要在点击事件上更改边框颜色,但不能使用下一个代码:

document.getElementById('triangle').style.borderLeft = color;

有人知道吗?

下一个问题是下一个:一旦颜色改变了,我想把它保存为一个cookie,并在访客下次访问时加载它。这是我当前的 JavaScript:

function change(color)
{
    document.getElementById('tinybox1').style.backgroundColor = color;
    document.getElementById('tinybox2').style.backgroundColor = color;
    document.getElementById('tinybox3').style.backgroundColor = color;
    document.getElementById('tinybox4').style.backgroundColor = color;
    document.getElementById('text').style.backgroundColor = color;
    document.getElementById('pinnable').style.backgroundColor = color;
    // document.getElementById('triangle').style.borderLeft = color;
}

我希望有人可以帮助我!

4

3 回答 3

1

对于第一个问题,使用@VisioN这样的答案:

var color = "#000";
document.getElementById('triangle').style.borderLeft = "1px solid " + color;

关于cookies的第二个尝试这个(假设你想使用简单的javascript)将它保存为cookie.js并将其导入你的html:

function createCookie(name,value,days) {
    var expires = "";
    if (days) {
        var date = new Date( );
        date.setTime(date.getTime() + (days*24*60*60*1000));
        expires = "; expires=" + date.toGMTString();
    }
    else expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) 
{
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for( var i=0;i < ca.length;i++) 
    {
        var c = ca[i];
        while (c.charAt( 0)==' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function eraseCookie( name) 
{
    createCookie(name,"",-1);
}

现在,要创建 cookie,请执行以下操作:

createCookie('cookiename', 'cookievalue', false);

要评估 cookie,请执行以下操作:

 var cookie = readCookie('cookiename');

 // var cookie will be null if there is no cookie to read.
 if(cookie == 'cookievalue'){
   //do something
 }

希望这可以帮助。

于 2012-04-24T19:47:28.113 回答
1

更改边框颜色而不必指定大小和类型,请使用:

element.style.borderLeftColor = "#000";
于 2012-04-24T19:54:52.950 回答
0

对于到目前为止的第一个问题,可以这样做:

var color = "#000";
document.getElementById('triangle').style.borderLeft = "1px solid " + color;

或者结合一些风格。

CSS:

#triangle {
    ...
    border-left-width: 1px;
    border-style: solid;
}​

JS:

var color = "#000";
document.getElementById('triangle').style.borderLeftColor = color;
于 2012-04-24T19:43:52.630 回答