只有在DOM元素被渲染了之后,才能获取元素实际的宽高。
换句话说,如果元素还未插入DOM树里,就不可能走到渲染这一步,更不可能拿到元素的宽和高。
综上所述,你只能通过在DOM中插入元素,之后再获取已经渲染好的元素的宽高。
这种方法是对的,不过前提是:你必须有足够权限访问 iframe Docuemnt —— 同域
例如,indexhtml 和 my_framehtml 都在同一域名下,或都在桌面,这样可以
但如果你把 iframe 的 src 换为百度网址,就会出现类似下面的错误
Permission denied to access property 'getElementById'
无权访问 'getElementById' 属性
如果你的情况是后者,那就没有解决办法。如果是前者,可能你的代码中有错误。
<tspan x="205" id="tspan1" >34</tspan> ,加个ID tspan1
js:
var el=documentquerySelector("#tspan1");
alert( eloffsetWidth )
alert( eloffsetHeight)
function sunWidth(){
var w1 = 0;
var $lis = $(this)children("ul")children("li")
$liseach(function(){
w1 += thisouterwidth(/true/);//参数true表示包括边距(margin);
});
return w1;
}
alert (sunWidth())
给你说下思路,
documentgetElementById("top")rowslength可以获得top表的行数
documentgetElementById("top")rows[0]cellslength可以获得top表的第一行的列数
documentgetElementById("top")rows[0]cells[0]offsetWidth可获得top表第一行第一列的实际宽度,(注意,这个是只读的!)
所以
for(var i=0;i<documentgetElementById("top")rows[0]cellslength;i++)
{
documentgetElementById("buttom")rows[0]cells[i]width=documentgetElementById("top")rows[0]cells[i]offsetWidth;
}
希望对你有帮助!
常用div宽度获取 domoffsetWidth:只读属性,返回元素的布局宽度数值(int)(content + padding + border),此数值为四舍五入后的整数 domgetBoundingClientRect()width:只读属性,返回元素的布局宽度数值(int)(content + padding + border),此数值不会四舍五入 windowgetComputedStyle(dom)width:只读属性,返回元素内容宽度的数值和单位(string)(content) domscrollWidth:只读属性,返回全部content+ padding 的宽度数值(int) domclientWidth:只读属性,返回元素内容可视区域的宽度(content + padding)
并没有getElementByClassName()这个函数,只有getElementsByClassName(),Element后面有个s,这个返回来是多个节点的集合(因为class名有可能匹配到多个),假设只有1个元素用这个class名,那么要改变宽度可以:
var a=documentgetElementsByClassName("a");a[0]stylewidth="500px";
望采纳,谢谢
以table为例,首先为其设计class或者id如:id为table
然后进入js中
定义一个对象
var table=documentgetelementbyid("table")
这是获取这个元素
然后宽和高
就是tablewidth
tableheight
以上就是关于jquery如何获取动态创建的且还没有放入dom的元素的宽度全部的内容,包括:jquery如何获取动态创建的且还没有放入dom的元素的宽度、如何获取页面iframe元素内容的高、宽、如何获取svg里面的元素的宽度和高度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)