0

JavaScriptを使用してHTML内のdivの色を変更しましたが、2つの問題があります。1つ目は、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;

Cookieに関する2つ目は、これを試してください(単純な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 に答える