Javascript 无法通过jQuery获取Div宽度
我有几个子Div的HTML Div。当我试图获取主Div的宽度时,得到的宽度与inspect元素中显示的宽度不同。我想要的是可见宽度,即检查元素时显示的宽度。我尝试了Javascript 无法通过jQuery获取Div宽度,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有几个子Div的HTML Div。当我试图获取主Div的宽度时,得到的宽度与inspect元素中显示的宽度不同。我想要的是可见宽度,即检查元素时显示的宽度。我尝试了outerWidth()和offsetWidth,但没有成功offsetWidth给我“未定义”。我怎么能得到这个 var x=$(“.main”).width(); $(“按钮”)。在(“单击”,函数(){ 警报(x+“(检查元件的宽度为571)”); }); .main{ 显示器:flex; 溢出:隐藏; } .sub{ 填充
outerWidth()
和offsetWidth
,但没有成功offsetWidth
给我“未定义”。我怎么能得到这个
var x=$(“.main”).width();
$(“按钮”)。在(“单击”,函数(){
警报(x+“(检查元件的宽度为571)”);
});代码>
.main{
显示器:flex;
溢出:隐藏;
}
.sub{
填充:10px;
利润率:10px;
宽度:50px;
高度:50px;
背景色:#faa;
}
一个
两个
三
四
获取主DIV宽度
使用内联Flex
var x=$(“.main”).width();
$(“按钮”)。在(“单击”,函数(){
警报(x);
});代码>
.main{
显示:内联flex;
溢出:隐藏;
}
.sub{
填充:10px;
利润率:10px;
宽度:50px;
高度:50px;
背景色:#faa;
}
一个
两个
三
四
获取主DIV宽度
使用内联Flex
var x=$(“.main”).width();
$(“按钮”)。在(“单击”,函数(){
警报(x);
});代码>
.main{
显示:内联flex;
溢出:隐藏;
}
.sub{
填充:10px;
利润率:10px;
宽度:50px;
高度:50px;
背景色:#faa;
}
一个
两个
三
四
获取主DIV宽度
获取div宽度时,您必须小心。如果是在页面加载之前或在调整窗口大小之前,您的解决方案将不起作用
当我在点击事件中得到宽度时,我总是得到正确的宽度。
您也可以在页面加载以下内容后执行一次:
$(function() {
// your code
});
同:
$('document').ready(function(){
// your code
});
var x=0;
//交替
$(函数(){
//这只会发生一次,并且不会对调整大小作出反应
x=$(“.main”).width();
控制台日志(“div宽度:+x”);
});
$(“按钮”)。在(“单击”,函数(){
//调整大小没有问题
x=$(“.main”).width();
警报(“div宽度:+x”);
});代码>
.main{
显示器:flex;
溢出:隐藏;
}
.sub{
填充:10px;
利润率:10px;
宽度:50px;
高度:50px;
背景色:#faa;
}
一个
两个
三
四
获取主DIV宽度
获取div宽度时,您必须小心。如果是在页面加载之前或在调整窗口大小之前,您的解决方案将不起作用
当我在点击事件中得到宽度时,我总是得到正确的宽度。
您也可以在页面加载以下内容后执行一次:
$(function() {
// your code
});
同:
$('document').ready(function(){
// your code
});
var x=0;
//交替
$(函数(){
//这只会发生一次,并且不会对调整大小作出反应
x=$(“.main”).width();
控制台日志(“div宽度:+x”);
});
$(“按钮”)。在(“单击”,函数(){
//调整大小没有问题
x=$(“.main”).width();
警报(“div宽度:+x”);
});代码>
.main{
显示器:flex;
溢出:隐藏;
}
.sub{
填充:10px;
利润率:10px;
宽度:50px;
高度:50px;
背景色:#faa;
}
一个
两个
三
四
获取主DIV宽度
您是使用OffsetWidth还是OffsetWidth?@Chris OffsetWidth似乎给了我正确的宽度。例如:我检查.main
元素,它有514px
,警报也显示514px
。当然,如果您使用警报(x+“(检查元素的宽度为571)”
你会得到不同的结果,lol,因为571
只是你添加的一个字符串,从你的示例中至少可以推断出这一点。此外,如果你以某种方式调整浏览器窗口的大小,它当然会得到错误的x
。您必须放置var x=$(“.main”).width()代码>在点击事件中。我知道了。正如您所说,var x需要位于click事件内部。非常感谢。你做的是OffsetWidth还是OffsetWidth?@Chris OffsetWidth似乎给了我正确的宽度。例如:我检查.main
元素,它有514px
,警报也显示514px
。当然,如果您使用警报(x+“(检查元素的宽度为571)”
你会得到不同的结果,lol,因为571
只是你添加的一个字符串,从你的示例中至少可以推断出这一点。此外,如果你以某种方式调整浏览器窗口的大小,它当然会得到错误的x
。您必须放置var x=$(“.main”).width()代码>在点击事件中。我知道了。正如您所说,var x需要位于click事件内部。非常感谢。OP输出和您的有什么区别?@ION但区别似乎在于内部元素的宽度而不是屏幕(虽然不能解决OPs问题),我认为情况并非如此。他想得到.main
元素的正确宽度,但他没有得到正确的宽度,因为在页面加载后,元素宽度正在调整,因为他可能正在打开Inspect元素或其他东西,因此变量x
声明不正确。无论如何,OP在他的评论中证实了我的怀疑。OP输出和你的有什么区别?@Ion但区别似乎在于内部元素的宽度而不是屏幕(虽然不能解决OPs问题),我不认为是这样。他想得到.main
元素的正确宽度,但他没有得到正确的宽度,因为在页面加载后,元素宽度正在调整,因为他可能正在打开Inspect元素或其他东西,因此变量x
声明不正确。无论如何,OP在他的评论中证实了我的怀疑。