我在使用JQuery时遇到了问题。我正在编写一个函数,根据前一个兄弟的宽度(即'h4')动态调整绝对定位的'ul'宽度。代码是:
$(this).children('h4').each(function (i) {
var beforeWidth = $(this).width(); // This reads for example 234
$(this).next().width($(this).width()); // This should set the width
var afterWidth = $(this).next().get(0).clientWidth; // This returns always 0
});
HTML就是这样:
<div style="width: 30%;">
<h4>title</h4>
<ul style="position: absolute;">
<li>item 1</li>
<li>item 2</li>
</ul>
</div>
我无法理解为什么它返回0,所以我的'ul'总是小于相应的'h4'。我不得不说'h4'宽度是使用百分比值在CSS中设置的。
编辑:我应该说,只有当这段代码在隐藏的div(我用作模态弹出窗口)内时才会发生这种情况。否则它按预期工作!谢谢你们!
答案 0 :(得分:1)
更改
var afterWidth = $(this).next().get(0).clientWidth;
到
var afterWidth = $(this).next().width();
它应该可行