JQuery 为 <li> 元素分配不同的宽度

标签 jquery html css

我有一个 html 列表:

<ul>
  <li> first element </li>
  <li> second element </li>
  <li> third element </li>
  <li> 4th element </li> 
  ....
</ul>

使用 jquery,我想首先分配 <li>宽度等于 10%,对于其他宽度 <li> (倒数第二个)其余宽度除以数字个数<li> (例如 90%/5)

我必须排除 <li>存在于子列表中

如何使用 JQuery 做到这一点?

最佳答案

您可以在 css() 中使用一个函数,并使用该方法一次分配正确的宽度

var li = $('#outermostlist > li');
li.css('width', function(i) {
    return (i === 0)? '10%' : (90 / (li.length - 1)) + '%'; 
})

fiddle 示例 http://jsfiddle.net/hzHUn/3/

(4 个元素和 1 个嵌套列表的 Firebug View )

enter image description here

当然要注意90/(li.length - 1)得到的结果:在某些情况下所有值的和可能大于100% ,这可能不是您想要的:因此,如果是这种情况,请确保以某种方式将结果四舍五入为前一个较低的整数(例如 ~~(90/(li.length - 1) ));

关于JQuery 为 <li> 元素分配不同的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18911260/

相关文章:

jquery - 使文本适合 div

html - 仅使用 css 制作可点击的动画悬停

javascript - 检查函数是否准备好

javascript - 带有事件的嵌套元素

java - 将 jquery mobile 与 java 一起使用,这可能吗?

javascript - 如何使用 javascript/jquery 在不同的幻灯片中播放不同的音频?

javascript - 滚动条上显示循环进度条 - 百分比文本问题

javascript - 从 JSON 文件中检索数据

javascript - 单击全高元素到空白区域以添加类

javascript - 绑定(bind)属性值时出错 - Angular 包含和指令