javascript - jq 如何根据id逐个赋值?
黄舟
黄舟 2017-04-11 09:03:43
[JavaScript讨论组]

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

html处的代码

        
    • 专   业:
    • 可多选
  • 下面是jq代码

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

    人生最曼妙的风景,竟是内心的淡定与从容!

    全部回复(2)
    巴扎黑

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

    $(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;
    }

    迷茫

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

    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号