Javascript 计算LI的数量,然后将类添加到父UL

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'); }

下面是指向相同的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');
}
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');
      }

  });