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

Javascript 如何更改元素中包含无效字符的属性?,javascript,css,Javascript,Css,假设我有这个HTML元素: <div id="n1" nameok="hello"> 但假设我有另一个元素,比如: <div id="n2" name-not-ok="hello"> 我想问题出在“-”上,这很可能是不允许的,所以我尝试了类似的方法 x2."name-not-ok" = 'new value'; x2("name-not-ok") = 'new value'; 但它不起作用。 我试着用谷歌搜索,但在属性名中出现“禁止”字符的情况下,我找不到正确的语法

假设我有这个HTML元素:

<div id="n1" nameok="hello">
但假设我有另一个元素,比如:

<div id="n2" name-not-ok="hello">
我想问题出在“-”上,这很可能是不允许的,所以我尝试了类似的方法

x2."name-not-ok" = 'new value';
x2("name-not-ok") = 'new value';
但它不起作用。 我试着用谷歌搜索,但在属性名中出现“禁止”字符的情况下,我找不到正确的语法

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

使用方法如下

x2.setAttribute('name-not-ok', 'new val');
我建议对自定义属性使用
data-*
attributes

x2.dataset.nameOk = 'new val';
尝试:


x2[“名称不正常”]=“新值”

x2.setAttribute('name-not-ok','new val')谢谢!请把它作为一个答案,这样我就可以接受:)正如所说,我没有写这些。。。实际上,它们是引导过程的进度条:@ZioBit这意味着您已经包含了jQuery。如果是,则使用
$('#n2').attr('name-not-ok','new val')好的,谢谢你的新提示。我对jQuery真的很陌生,所以。。。非常感谢您的帮助:)但是有没有什么特别的理由“使用”jQuery来完成这个任务,或者是为了节省2个字节
x2.setAttribute('name-not-ok', 'new val');
x2.dataset.nameOk = 'new val';