相关疑难解决方法(0)

何时在JavaScript中使用setAttribute vs .attribute =?

有没有开发使用setAttribute而不是dot(.)属性表示法的最佳实践?

例如:

myObj.setAttribute("className", "nameOfClass");
myObj.setAttribute("id", "someID");
Run Code Online (Sandbox Code Playgroud)

要么

myObj.className = "nameOfClass";
myObj.id = "someID";
Run Code Online (Sandbox Code Playgroud)

javascript attributes setattribute

209
推荐指数
5
解决办法
10万
查看次数

javascript dom,如何处理"特殊属性"与属性?

问题是是否使用属性或属性.

没有发现这个记录,所以进行了一些测试(铬12):

property <=>属性

accept, alt, formMethod, formTarget, id, name, placeholder, type, maxlength, size
form: method, name, target, action, enctype
  • 可以设置属性或属性
  • 将反映属性或属性
  • 异常1:如果form属性首先查找该名称的元素(!)
  • 异常2:action属性使用value重写自身,将set value传递给attribute
  • 异常3:enctype维护其完整性,但将set值传递给attribute

property <= attribute

value, autofocus, checked, disabled, formNoValidate, multiple, required
  • 设置属性对属性没有影响
  • setting属性也设置属性

property =>属性

indeterminate
  • setting属性也设置属性
  • 设置属性对属性没有影响

propetry> <属性

defaultValue, validity, defaultChecked, readOnly
form: novalidate
  • 设置属性或属性对另一个没有影响


对我来说,这似乎很随意.

给出一个随机属性/值来应用于一个元素,这里是我提出的最好的规则(根据Tim Down(谢谢!)修改):

  • if class,write with classList,read with classNameproperty

  • 如果一个表单,总是使用属性读取(并且要小心)

  • 如果typeof element[propName] != "undefined",使用财产,即,element[attr]=val

  • 否则,使用属性,即 element.setAttribute(attr,val)

这甚至接近正确吗?

注意:有趣的是,如果你有一个名为"novalidate"的元素的表单,是否可以访问novalidate表单本身的属性?

javascript dom code-generation

11
推荐指数
1
解决办法
1369
查看次数

Element.value和Element.getAttribute("value")之间的区别

我只是想知道两者之间有什么区别.我注意到这两种方法有时会产生不同的结果.

html javascript dom

11
推荐指数
2
解决办法
7297
查看次数

从getElementsByTagName()获取属性的最佳方法?

我正在玩获取link标记的属性,似乎有几种方法来访问属性:

document.getElementsByTagName("link")[0]['media']
document.getElementsByTagName("link")[0].media
document.getElementsByTagName("link")[0].getAttribute('media')
document.getElementsByTagName("link")[0].attributes['media']
Run Code Online (Sandbox Code Playgroud)

它接近于荒谬的相同数据有多少路径.这些方法中的一种远远优于其他方法吗?

javascript attributes dom

8
推荐指数
1
解决办法
2万
查看次数