2012-04-24 69 views
0

我使用一些JavaScript来更改HTML内部某些div的颜色,并且存在两个问题。 第一个是,我有一个CSS三角形,我需要改变click事件,但不会工作,边框的颜色与下面的代码:使用JavaScript更改边框颜色并使用Javascript保存Cookie

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; 
} 

我希望有人能帮助我!

+0

你为什么不尝试使用jQuery?会更容易。 – 2012-04-24 19:41:55

回答

0

要改变只是边框的颜色,而不必同时指定大小和类型,用途:

element.style.borderLeftColor = "#000"; 
+0

默认边框宽度可能为0,所以只有borderLeftColor不会提供任何内容。 – VisioN 2012-04-24 19:58:29

+0

如果边框宽度为零,则不是问题中所述的CSS三角形。 – 2012-04-24 20:01:54

+0

对,我的错。 – VisioN 2012-04-24 20:06:59

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; 
1

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

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

对于第二个关于cooki ES试试这个(假设你想用简单的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 
} 

希望这有助于。