假设我有这个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代码......但首先,这个属性是我没写的“包”的一部分,其次......必须有办法;)
答案 0 :(得分:2)
使用setAttribute如下
x2.setAttribute('name-not-ok', 'new val');
我建议将data-*
属性用于自定义属性。
x2.dataset.nameOk = 'new val';
答案 1 :(得分:-1)
尝试:
x2 [“name-not-ok”] ='新值';