首页 > jq 如何根据id逐个赋值?

jq 如何根据id逐个赋值?

自己写了个页面想要模拟多选框 大部分实现了 差了一点样式上的小效果
由于label想要把宽度撑起来的前提是外面的li标签的宽度必须大于等于label的宽度,我就想获取到label的宽度按照id赋予给对于的li标签上 失败了 考虑不出症结在哪 求解

html处的代码

        <li class="Check-box clearfix">
            <ul>
                <li class="checkbox-li title"><span>专&nbsp;&nbsp;&nbsp;业:</span></li>
                <li class="checkbox-li bb">可多选</li>            
                <li class="checkbox-li checkboxOne" id="input-01">
                    <input type="checkbox" value="1" id="checkboxOneInput-01" name="" />
                    <label for="checkboxOneInput-01" class="check-label" id="t-01">创新实验班</label>
                </li>
                 <li class="checkbox-li checkboxOne" id="input-02" >
                    <input type="checkbox" value="2" id="checkboxOneInput-02" name="" />
                    <label for="checkboxOneInput-02" class="check-label" id="t-02">创新班</label>
                </li>

            </ul>
        </li>

下面是jq代码

   $(document).ready(function(){
        $('.check-label').each(function(){
            var clid = $(this).attr('id');
            var wclid = $("#"+clid).innerWidth();
            var ww = $("#inpu" + clid );
            ww.width(wclid);
        });
    });

测试代码可以给li设置宽度...
没明白你的意思, 默认情况下li是block属性, 宽度绝对不是要靠里面的子元素来撑的


按你的思路,你的脚本是没错的,不过有几个地方需要优化一下

$(document).ready(function() {
    $('.check-label').each(function() {
        var label = $(this);
        var clid = $(this).attr('id');
        // 当前 label 已经取到了,不用再用 $() 根据 ID 的封装的效率略低
        var wclid = label.innerWidth();
        // 这里 t-xx 和 input-xx 的关系很明确,就是直接的包含关系
        // 所以可以用 parnet() 来获取外层节点,不需要用 $() 来获取
        // var ww = $("#inpu" + clid);
        var ww = label.parent();
        ww.width(wclid);
    });
});

倒是改改样式表可能会达到你的效果

li {
    display: inline-block;
}

【热门文章】
【热门文章】