从变量注入属性和值

Injecting attribute and value from var

本文关键字:属性 注入 变量      更新时间:2023-09-26

>我正在尝试注入一个属性,它的值基于 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 值编号的文本在任何地方可见。

我需要文本值用于 2 个目的:

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模板。

有什么提示吗?

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

不会吧

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

因为myDynamicTexs是一个数组?