!DOCTYPEhtmlhtmlheadmetacharsetutf-8titledem 如上代码所示,有点不明白同样是Element.value的获取方式,为什么前者获取不到,之前理解 div元素本身并没有value这个属性,而你在你在里面添加value值
!DOCTYPEhtmlhtmlheadmetacharsetutf-8titledem
如上代码所示,有点不明白同样是Element.value的获取方式,为什么前者获取不到,之前理解 div元素本身并没有value这个属性,而你在你在里面添加value值这个是用户定义的属性, 用户定义的属性不能通过.value的方式获取,而如果是元素本身的属性value,则可以通过.value的 方式获取[b][/b] 如果真是这样,下面的代码应该也获取不到才是,换一种方式理解,动态生成的元素是js引擎存在内存中的对象,div.value择是读取内存中的对象value值,并非页面中元素的值,但是结果console.log(document.getElementById("div2").value); 也可以输出,瞬间不知道怎么理解了。望大神指点一下这个问题。小弟不胜感激!
4 个解决方案
#1
HTMLElement的attribute和其对应的DOM对象的property的区别
#2
DOM元素的属性分两类,atrribute和property attribute翻译成中文术语为“特性”,property翻译成中文术语为“属性” 在html标签上设置的都是attribute。 在js代码中div.value="12345";这样设置的都是property。 在js代码中用div.value获取的也都是property。 想要在js代码中获取attribute要用div.getAttribute("value") 对于很多DOM元素固有的attribute都还有一个相对应的property。比如div元素的id和class既是attribute,也有对应的property,不管使用哪种方法都可以访问和修改。 但是对于DOM元素中自定义的attribute就没有相对应的property了,只能用div.getAttribute("value")获取,不能用div.value获取。
#3
div没有value只能用attribute获取,用jquery就是$("div").attr("value");
#4
2楼正解。已经采纳!