Javascript 计算LI的数量,然后将类添加到父UL
下面是指向相同的JSbin链接Javascript 计算LI的数量,然后将类添加到父UL,javascript,jquery,html,Javascript,Jquery,Html,下面是指向相同的JSbin链接 如果我理解您的意图,那么这其中有一个非常明显的错误: jQuery(document).ready(function(){ var countLi = $(".taglib-ratings > li").size(); alert(countLi); if(countLi == 2) { $(this).parent('.taglib-ratings').addClass('2-col'); alert ('this ul has 2 li'); }
如果我理解您的意图,那么这其中有一个非常明显的错误:
jQuery(document).ready(function(){
var countLi = $(".taglib-ratings > li").size();
alert(countLi);
if(countLi == 2)
{
$(this).parent('.taglib-ratings').addClass('2-col');
alert ('this ul has 2 li');
}
else if(countLi == 1)
{
$(this).parent('.taglib-ratings').addClass('2-col');
alert ('this ul has 1 li');
}
else if(countLi > 2)
{
alert ('this ul has'+ countLi +' li');
}
});
您正在计算嵌套在具有类
taglib评级的标记中的li
s的总数。相反,您需要使用该类循环遍历每个ul
,然后计算特定ul
中的li
s的数量。您的代码并不补充您的解释。。。你是说你想要x大拇指,但是代码提取没有这样做
你的意思是这样的吗
else if(countLi == 1)
{
$(this).parent('.taglib-ratings').addClass('2-col'); // shouldn't this be 1-col?
alert('this ul has 1 li');
}
你在这里得到的是“拇指1”而不是“一个拇指”,因为这要简单100万倍,而且正如评论中所注意到的,许多浏览器不会喜欢1拇指
你得到的是“一个大拇指”而不是“一个大拇指”,因为这比“一个大拇指”容易100万倍:p
这将检查所有ul.tablib评级
,并根据li
金额添加等级。但是,类名将类似于1-thumbs
,2-thumbs
等。。。但是,只需几行代码,您就可以轻松地将数字映射到它们的书面版本
希望有帮助,
思南
jsbin弹出“3”然后是“this ul has3 li”大多数浏览器不支持以数字开头的类名。它应该类似于col-2
。大多数浏览器不支持以数字开头的类名。它应该是类似于thumbs-1
的东西thumbs-1
然后是:每个
的第二个参数是DOM元素,而不是jQuery对象。@matt谢谢,您的编辑是正确的。。。但这一个肯定有效。。。
else if(countLi == 1)
{
$(this).parent('.taglib-ratings').addClass('2-col'); // shouldn't this be 1-col?
alert('this ul has 1 li');
}
$('ul.tablib-ratings').addClass(function () {
return 'thumbs-' + $(this).children('li').size();
});
$('ul.tablib-ratings').each(function(i,ul){
li_amount = $(ul).find('li').length;
$(ul).addClass(li_amount+"-thumbs");
});
$(".taglib-ratings").each(function(){
if ($(this).children('li').size() == 2 )
{
$(this).addClass('Two');
$(this).append('Two');
}
else if ($(this).children('li').size() == 1 )
{
$(this).addClass('one');
$(this).append('One');
}
});