jquery的 length 属性用以获取包含 jQuery 对象中元素的数目:
$(".a .b li").length; // a类后代b类中包含的li元素的数量
综合示例如下:
创建Html元素
点击按钮获取li数量:
- John
- Karl
- Brandon
- Glen
- Tane
- Ralph
- Ralph
- John
- Karl
- Brandon
设置css样式
div.box{width:300px;padding:20px;margin:20px;border:4px dashed #ccc;}
div.box span{color:#999;font-style:italic;}
div.content{width:250px;margin:10px 0;padding:20px;border:2px solid #ff6666;}
input[type='button']{height:30px;margin:10px;padding:5px 10px;}
ul{padding:5px 25px;border:2px dashed #cc6699;}
编写jquery代码
$(function(){
$(":button").click(function() {
tol = $(".content .test li").length;
num = $(".content .test ul").map(function() {
return $(this).find("li").length;
}).get().join(',');
alert("不同div下的li数量分别为:"+num+",总数为:"+tol+"。");
});
})
观察效果
是获取class为mainchannel的div里面总的li数量还是里面每个div中div的li的数量
你的li标签有没有定义样式?
如果有就直接取
jquery 你还用的不熟悉 jquery 基本不用 for 循环。
.each(function() {
})
var num = 0;
// 思路是这样 不过我不确定我写的对,我每次都是试着来,jquery 新手
$("ul", "div.channel").children("li").each(function() {
num++;
});
错误在于,要取得channels中的一条数据的时候,不能用channels[i],要用channels.eq(i),下面的uls也是。
最下面那句,uls[i].css("width",linum*360); 中,不应该是参数i吧,我觉得应该是j。
这样可以保证给div下的每个ul的宽度赋值。
代码:
function setulwidth(){
var channels=$(".mainchannel").children(".channel");
for(var i=0;i
for(var j=0;j
var lis=uls.eq(j).children("li");
for(var k=0;k
}
uls.eq(j).css("width",linum*2);
}
}
}
注:我这里把基数360改成了2
既然是jquery。就用each。