关于div获取value值得问题,望大神指点!非常感谢。

#麻辣小龙虾# 2017-03-22 11:52:21
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>demo</title>
</head>
<body id="body">

<div class="box" value="123">

</div>
<!--按钮区 -->

<script type="text/javascript">
/************直接从页面获取**********/
console.log(document.querySelector(".box").value);

/************动态生成获取**********/

var div = document.createElement("div");
div.id = "div2";
div.value = "12345";
document.getElementById("body").appendChild(div);
console.log("-------");
console.log(div.value);
console.log(document.getElementById("div2").value);

</script>
</body>
</html>


如上代码所示,有点不明白同样是Element.value的获取方式,为什么前者获取不到,之前理解

div元素本身并没有value这个属性,而你在你在里面添加value值这个是用户定义的属性,
用户定义的属性不能通过.value的方式获取,而如果是元素本身的属性value,则可以通过.value的
方式获取
[b]
[/b]

如果真是这样,下面的代码应该也获取不到才是,换一种方式理解,动态生成的元素是js引擎存在内存中的对象,div.value择是读取内存中的对象value值,并非页面中元素的值,但是结果console.log(document.getElementById("div2").value); 也可以输出,瞬间不知道怎么理解了。望大神指点一下这个问题。小弟不胜感激!
...全文
1122 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hookee 2017-03-23
  • 打赏
  • 举报
回复
HTML Element 的 attribute 和其对应的DOM 对象的property 的区别
jio可 2017-03-23
  • 打赏
  • 举报
回复 1
div没有value只能用attribute获取,用jquery就是$("div").attr("value");
#麻辣小龙虾# 2017-03-23
  • 打赏
  • 举报
回复
2楼正解。已经采纳!
天际的海浪 2017-03-23
  • 打赏
  • 举报
回复
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获取。

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧