如何更改其中包含无效字符的元素的属性?

时间:2015-11-09 11:25:54

标签: javascript css

假设我有这个HTML元素:

<div id="n1" nameok="hello">

如果我想使用JS更改nameok属性,那很简单:

var x = document.getElementById("n1");
x1.nameok = 'new value';

但是,假设我有另一个元素,就像这样:

<div id="n2" name-not-ok="hello">

然后,第二行产生错误:

var x = document.getElementById("n2");
x2.name-not-ok = 'new value';

我猜这个问题存在于“ - ”中,这很可能是不允许的,所以我试过像

这样的东西
x2."name-not-ok" = 'new value';
x2("name-not-ok") = 'new value';

但它没有用。 我尝试使用Google,但在属性名称中出现“禁止”字符时,我找不到正确的语法。

当然,我可以修改相应的CSS以避免使用带有“ - ”的属性,然后更改我的所有HTML代码......但首先,这个属性是我没写的“包”的一部分,其次......必须有办法;)

2 个答案:

答案 0 :(得分:2)

使用setAttribute如下

x2.setAttribute('name-not-ok', 'new val');

我建议将data-*属性用于自定义属性。

x2.dataset.nameOk = 'new val';

答案 1 :(得分:-1)

尝试:

x2 [“name-not-ok”] ='新值';