从var

时间:2016-01-15 16:15:20

标签: javascript jquery html cookies

我正在尝试根据cookie和变量列表注入属性及其值。

Cookie具有数值,并且设置没有问题:

function setCookie(key, value) {
    var expires = new Date();
    expires.setTime(expires.getTime() + (1 * 24 * 60 * 60 * 1000));
    document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();
}

function getCookie(key) {
    var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
    return keyValue ? keyValue[2] : null;
}

现在我有一个文本列表,应根据cookie值动态更改。

var myDynamicTexs = {
    1: "AAAA",
    2: "BBBB",
    3: "CCCC",
}

我需要根据cookie数值获取文本。我可以使用:

获取cookie值
var myText = getCookie('myCookie')

但我似乎无法在任何地方看到属于cookie值的文本。

我需要文本值有两个目的:

1)将它们显示为网站上显示的文字:

$('#myelement1').html('code to grab the text')

这会产生如果cookie值为1,#myelement1将打印:

<p id='myelement1'>AAAA</p>

2)将它们用作元素属性的值:

$('div')attr.('id','code to grab the text')

如果Cookie值为2,则<div>将变为:<div class="BBBB">

我尝试过以下但是没有工作:

$('div').attr('class', myDynamicTexs[(getCookie('myCookie'))]);

它需要是JavaScript或JQuery,因为我无法修改原始HTML模板。

任何提示?

1 个答案:

答案 0 :(得分:0)

$('div').attr('class', myDynamicTexs[**(**getCookie('myCookie')**)**]);

赢了

$('div').attr('class', myDynamicTexs[getCookie('myCookie')]);

因为myDynamicTexs是一个数组?