js中关于获取元素属性的方法(object.style.width)

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Document</title><style... <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
#div{width: 100px;background: #f00;height: 100px;}
</style>
</head>
<body>
<script type="text/javascript">
function a(){
var w=document.getElementById('div');
w=w.style.width;
alert(w);
}
</script>
<div id="div" onclick="a()"></div>
</body>
</html>

为什么这个弹出的是 空白? 不应该是这样用的吗?
展开
 我来答
匿名用户
2015-09-22
展开全部
改成w=w.offsetWidth;
js获取Html元素的实际宽度高度
第一种情况就是宽高都写在样式表里,就比如#div1{width:120px;}。这中情况通过#div1.style.width拿不到宽度,而通过#div1.offsetWidth才可以获取到宽度。

第二种情况就是宽和高是写在行内中,比如style="width:120px;",这中情况通过上述2个方法都能拿到宽度。

小结,因为id.offsetWidth和id.offsetHeight无视样式写在样式表还是行内,所以我们获取元素宽和高的时候最好用这2个属性。注意如果不是写在行内style中的属性都不能通过id.style.atrr来获取。

现在的前端制作很少直接把样式写style里了,都是写在样式表里。如果你要获取的样式没有相对应的(就像#div1.style.width对 应#div1.offsetWidth),就只能分别针对不用浏览器来获取样式表的属性了,可以试着搜索“JS 获取样式属性”之类的。
匿名用户
2015-09-22
展开全部
js获得的是dom的内链样式,无法获得ID上的样式,你直接写在div的内链样式上就可以获得。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
应笑郎04
推荐于2016-02-18 · TA获得超过1976个赞
知道小有建树答主
回答量:1397
采纳率:100%
帮助的人:658万
展开全部
这样写是拿不到的,火狐浏览器或者谷歌浏览器已经可以拿到,ie不行;
只有把样式写到div的style元素里 才可以;
</head>
<body>
<script type="text/javascript">
function a(){
var w=document.getElementById('div');
w=w.style.width;
alert(w);
}
</script>
<div id="div" onclick="a()" style="width: 100px;background: #f00;height: 100px;"></div>

如果想拿到,可以用jquery这类框架;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式