Javascript 基于子对象的自动百分比宽度
我有一段jQuery代码,它会根据子div的数量自动给一个div一个百分比宽度,在子div中有更多div之前,它工作得很好,我怎么能让它忽略子“.eaService”中的任何div,只给“.eaService”计算出的宽度呢 脚本Javascript 基于子对象的自动百分比宽度,javascript,jquery,Javascript,Jquery,我有一段jQuery代码,它会根据子div的数量自动给一个div一个百分比宽度,在子div中有更多div之前,它工作得很好,我怎么能让它忽略子“.eaService”中的任何div,只给“.eaService”计算出的宽度呢 脚本 $(document).ready(function () { var el = $('.servCon .eaService'); var len = el.children().length; if (len > 0) { len = 100 / l
$(document).ready(function () {
var el = $('.servCon .eaService');
var len = el.children().length;
if (len > 0) {
len = 100 / len;
el.css("width", len + "%");
}
});
HTML
<div class="servCon">
<div class="eaService">
<div class="imgPanel"><img src="someimage.jpg" alt="" />
</div>
<div class="pad">
<h3>Sub Heading</h3>
<p>At Smith Jones we are committed to forming close partnerships with our clients, enabling us to understand... Find our more</p>
</div>
</div>
<div class="eaService">
<div class="imgPanel"><img src="someimage.jpg" alt="" />
</div>
<div class="pad">
<h3>Sub Heading</h3>
<p>At Smith Jones we are committed to forming close partnerships with our clients, enabling us to understand... Find our more</p>
</div>
</div>
</div>
副标题
在史密斯琼斯,我们致力于与客户建立密切的合作关系,使我们能够了解。。。找到我们的更多
副标题
在史密斯琼斯,我们致力于与客户建立密切的合作关系,使我们能够了解。。。找到我们的更多
感谢var el=$('.servCon.eaService')代码>您同时选择了.eaService divs
因此,当您调用var len=el.children().length
您得到的是他们子女的总和,在本例中为4
,因此您将设置为。eaService
宽度为25%
您应该修改代码,如下所示:
$(document).ready(function () {
var el = $('.servCon');
var childs=$('.eaService');
var len = el.children().length;
if (len > 0) {
len = 100 / len;
childs.css("width", len + "%");
}
});
好吧,既然您在这里特别选择了.eaService的子元素,难怪您要计算这些元素
您所做的是$(“.servCon.eaService”).children()
,它首先选择所有的.eaService元素(在本例中为两个),然后查找这些元素的子元素。结果选择包括.imgPanel div和.pad div
你可能只是想知道servCon有多少孩子。所以你想这样做:
var len = $(".servCon").children().length;
为了最大限度地简洁:
$(function(){
$(".servCon").css("width", (100 / Math.max(1, $(".servCon").children().length)) + "%");
});
完全正确谢谢你的帮助