如何使用AngularJS获取元素的宽度?

时间:2014-02-04 04:48:10

标签: javascript angularjs

我意识到我可以使用jQuery来获取元素的宽度,但我很好奇;有没有办法使用AngularJS?

2 个答案:

答案 0 :(得分:39)

原生JS(#id):

document.getElementById(id).clientWidth;

Native JS(querySelector(class,id,css3 selector)):

document.querySelectorAll(".class")[0].clientWidth;

将其插入angular.element:

angular.element(document.getElementById(id)).clientWidth;
angular.element(document.querySelectorAll(".class")[0]).clientWidth;

如果您需要获取非舍入数字,请使用getBoundingClientRect。

angular.element(document.getElementById(id)).getBoundingClientRect();

有关该主题的一些资源:

如果这在语法方面漂浮你的船,并且不需要将jQuery插入混合中,请注意跨浏览器地狱。

答案 1 :(得分:11)

如果你在所有这些建议中一直像我一样挠头而且它们不起作用,我发现我必须设置超时。我不知道为什么,也许是因为我在我的div上使用了材料设计属性。

setTimeout(function(){
     var divsize = angular.element(document.getElementById('fun_div')).prop('offsetWidth');   
     console.log('Width of fun_div: ' + divsize);
    },50);