Javascript 设置DOM元素';名称与XML不匹配的属性';姓名制作

Javascript 设置DOM元素';名称与XML不匹配的属性';姓名制作,javascript,html,dom,attributes,Javascript,Html,Dom,Attributes,我有一个HTML元素 我可以使用读取其中一个属性的值 console.log(document.querySelector('div').getAttribute('~');//“123” 您可以: 使用innerHTML解析包含具有所需属性名称的元素的HTML字符串 从该元素中删除属性(属性只能属于单个元素) 将属性的值更改为所需的值 将属性设置为所需的元素 函数setAttr(el、名称、值){ 如果(/[\u0000\u0009\u000A\u000C\u000D\u0020\u002

我有一个HTML元素

我可以使用读取其中一个属性的值

console.log(document.querySelector('div').getAttribute('~');//“123”
您可以:

  • 使用
    innerHTML
    解析包含具有所需属性名称的元素的HTML字符串
  • 从该元素中删除属性(属性只能属于单个元素)
  • 将属性的值更改为所需的值
  • 将属性设置为所需的元素
  • 函数setAttr(el、名称、值){
    如果(/[\u0000\u0009\u000A\u000C\u000D\u0020\u002F\u003D\u003E]/.test(名称))
    抛出新错误('InvalidCharacterError');
    var htmlString='';
    var parser=document.createElement('div');
    parser.innerHTML=htmlString;
    var attrs=parser.firstChild.attributes;
    如果(attrs.length!==1 | | attrs.item(0).name!==name)//为了安全起见
    抛出新错误('InvalidCharacterError');//不应发生这种情况
    var attr=attrs.removenametem(名称);
    属性值=值;
    el.attributes.setNamedItem(attr);
    }
    var el=document.querySelector('div');
    setAttr(el,“~”,“123”);
    console.log(el.getAttribute('~');//“123”