Javascript 基于子对象的自动百分比宽度

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

我有一段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 / 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)) + "%");
});

完全正确谢谢你的帮助