javascript - 通过不将元素附加到 Dom 来获取元素的宽度

标签 javascript jquery html css dom

<分区>

我正在尝试使用 jQuery 的 .width() 函数获取元素的宽度。我试图通过将该元素附加到 Dom 中来获取该元素的宽度。

$('body').append("<span id='longText'></span>");
var longElement = $('body').find("#longText");
longElement.text(longestMeasure);
var longeElementWidth = longElement.width();

这个方法很好用。但是我们可以通过不将元素注入(inject) Dom 来获取元素的宽度吗?

最佳答案

如果不将它插入 DOM,你不能完成它,但这是我能想到的一个技巧,它将它作为隐藏插入 dom,获取你想要的任何 CSS 属性并删除之后的元素。

与您的代码唯一不同的是我将显示设置为无,并在获得宽度后立即删除元素。

$(document).ready(function () {
    $('body').css('display','none').append("<span id='longText'></span>");
    var longElement = $('body').find("#longText");
    longElement.text(longestMeasure);
    var longeElementWidth = longElement.width();
    longElement(remove);
}

哦,我还打包了所有内容,以便在文档准备好后执行。

关于javascript - 通过不将元素附加到 Dom 来获取元素的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47870281/

上一篇:javascript - ajax返回数据后用jquery改变div的高度

下一篇:jquery - 同时使用日期选择器和 jQuery 对话框功能

相关文章:

JavaScript 动态回调函数

javascript - 在 Javascript 字符串中查找 <img> 标签的 src 属性值

javascript - Asp.Net - 如果未启用 JavaScript,则重定向

jquery-ui - 改变跨度的类别

javascript - Bootstrap 数据加载文本不起作用

javascript - 视频循环性能不佳

javascript - 为什么类和函数在 Javascript 中的行为不同?

javascript - Jquery - 从 1 开始为每次迭代添加数字

javascript - 在 php/javascript 中获取时间

javascript - setInterval JavaScript 不工作