Javascript 在DOM中使用.notation获取/设置属性可以吗?

Javascript 在DOM中使用.notation获取/设置属性可以吗?,javascript,dom,attributes,standards,Javascript,Dom,Attributes,Standards,在DOM中,可以这样引用元素的属性吗: var universe = document.getElementById('universe'); universe.origin = 'big_bang'; universe.creator = null; universe.style.deterministic = true; var universe = document.getElementById('universe'); if(universe.hasAttribute(

在DOM中,可以这样引用元素的属性吗:

var universe = document.getElementById('universe');
  universe.origin = 'big_bang';
  universe.creator = null;
  universe.style.deterministic = true;
var universe = document.getElementById('universe');
  if(universe.hasAttribute('origin')) then universe.origin = 'big_bang'; 

etc...
??我对物品及其隐私的深切尊重,以及我认为如果我不小心,事情可能会变得非常糟糕的感觉,使我更想这样做:

var universe = document.getElementById('universe');
  universe.origin = 'big_bang';
  universe.creator = null;
  universe.style.deterministic = true;
var universe = document.getElementById('universe');
  if(universe.hasAttribute('origin')) then universe.origin = 'big_bang'; 

etc...
真的有必要使用这些访问器方法吗?当然,这可能或多或少是必要的,这取决于我是如何确定的,我操纵的元素将具有我所期望的属性,但一般来说,DOM成员认为使用符号而不是吸气剂和定位器可以吗?

谢谢

是的,很好;-) 如果DOM中有属性,可以直接设置或获取它。
没有私有或只读元素或任何东西。顺便说一下,JavaScript没有“then”关键字。

由于跨浏览器问题,我总是使用getAttribute和setAttribute:

if(!universe.getAttribute('origin'))
{
    universe.setAttribute('origin', 'big_bang');
}
我记不起细节,但我在属性样式universe.origin和动态创建的DOM元素方面遇到了问题。

对于XML文档,必须使用
getAttribute
//
removeAttribute
等。JavaScript属性与DOM属性之间没有映射

对于HTML文档,您可以使用
getAttribute
等来访问属性,但最好不要这样做,因为IE6-7很难使用它。DOM Level 2 HTML属性不仅更可靠,而且更易于阅读


不清楚您在这里使用的是XML还是HTML文档。显然,
origin
不是一个HTML属性;'像这样的自定义元素和属性不应该包含在HTML文档中。但尚不清楚
universe.style.deterministic
指的是什么;如果没有HTML
style
属性,就无法映射CSS样式查找。

不,这样做不好。DOM对象的大多数属性都可以被覆盖。您不会破坏浏览器的行为,因为它不使用DOMAPI。但是,如果JS脚本试图使用其原始含义中的Overwrited属性,您将破坏它们

当我有几个属性要附加到一个对象(与单个标志或链接相反)时,我自己的做法是创建一个自定义对象,然后从DOM元素链接它:

var Universe = {
  origin: "big_bang",
  creator: null,
  style: { deterministic: true }
};
document.getElementById('universe')._universe = Universe;

getElementById不查找。“universe”无疑是HTML标记的有效ID。很好的一点,我选择了这个示例,但没有看它!:-)固定的。