为了账号安全,请及时绑定邮箱和手机立即绑定

都说不能获取对象,为啥能添加上样式?

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>document.getElementById</title>

</head>

<body>

<p id="con">JavaScript</p>

<script type="text/javascript">

  var mychar= document.getElementById("con")         ;

  document.write("结果:"+mychar); //输出获取的P标签。

   mychar.style.color="red";

    mychar.style.backgroundColor="#CCC";

    mychar.style.width="300px";

    mychar.style.height="50px";

</script>

<br/>

<script type="text/javascript">

  var mychar= document.getElementById("con").innerHTML         ;

  document.write("结果:"+mychar); //输出获取的P标签。 

</script>

</body>

</html>


为什么

 var mychar= document.getElementById("con")         ;

  document.write("结果:"+mychar); //输出获取的P标签。

不能获取p元素内容,然而;

mychar.style.color="red";

    mychar.style.backgroundColor="#CCC";

    mychar.style.width="300px";

    mychar.style.height="50px";

却能给p元素添加样式,这是什么原因?????


正在回答

2 回答

var mychar=document.getElementById("con");确实获取了p标签元素这个对象,
mychar不仅仅只包含p的文本内容,还包含了p当中的className、css设置等等其他的属性
所以 document.write("结果:"+mychar); 输出的并不是p的文本内容,而是[object HTMLParagraphElement]
如果要输出p的文本内容,应该写成:document.write("结果:"+mychar.innerHTML);或者innerText也可以
为什么能够给p元素添加样式,也是因为mychar包含了p的css属性。总而言之:从面向对象的角度来说,一个对象
有很多的属性(成员变量)和行为(成员方法),通过 对象名+ . +具体的属性或者方法 编译器才会知道你要的
是什么。
个人经验浅谈,不足之处望各位及时指正。
2 回复 有任何疑惑可以回复我~
#1

有礼彬 提问者

非常感谢!谢谢
2016-09-02 回复 有任何疑惑可以回复我~
#2

桃太郎

试了下,换成document.write("结果:"+mychar.innerHTML); 那些样式便不起作用了,why?
2016-09-11 回复 有任何疑惑可以回复我~
#3

桃太郎 回复 桃太郎

是因为mychar.innerHTML不包含p中的css设置属性吗?
2016-09-11 回复 有任何疑惑可以回复我~

document.write("结果:"+mychar);

修改为

document.write("结果:"+mychar.innerHTML);

0 回复 有任何疑惑可以回复我~
#1

有礼彬 提问者

楼上说的很对
2016-09-02 回复 有任何疑惑可以回复我~
#2

桃太郎

试了下,换成document.write("结果:"+mychar.innerHTML); 那些样式便不起作用了,why?
2016-09-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

都说不能获取对象,为啥能添加上样式?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信