计算LI的no然后将类添加到父UL

时间:2010-05-11 11:33:55

标签: javascript jquery html

<ul class="taglib-ratings thumbs">
<li id="qezr_yourRating">
  <a href="javascript:;" class="rating rate-up "></a>
</li>
</ul>

<ul class="taglib-ratings thumbs">
<li id="qezr_yourRating">
  <a href="javascript:;" class="rating rate-up "></a>
</li>
<li id="qezr_yourRating">
  <a href="javascript:;" class="rating rate-up "></a>
</li>
</ul>

我希望在内部LI的计数的基础上将该类应用于UL。

如果它有两个LI,那么这个类应该像两个拇指 就好像它有一个LI那么这个类应该像一个拇指

我正在尝试这个JS,但没有工作它返回2

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

这是指向它的JSbin链接。

http://jsbin.com/ofeda/edit

5 个答案:

答案 0 :(得分:3)

你的代码不能补充你的解释...你说你想要x-thumbs,但代码提取没有做那样的事情?

你的意思是这样吗?

$('ul.tablib-ratings').addClass(function () {
    return 'thumbs-' + $(this).children('li').size();
});

你在这里得到的是“thumbs-1”而不是“one-thumbs”,因为它容易了1,000,000倍,并且在评论中注意到,很多浏览器都不会欣赏1-thumbs

你在这里得到的是“1-thumbs”而不是“one-thumbs”,因为它容易了1,000,000倍:P

答案 1 :(得分:1)

如果我理解你要做的事情,那么这里有一个非常明显的错误:

else if(countLi == 1)
{
 $(this).parent('.taglib-ratings').addClass('2-col'); // shouldn't this be 1-col?
 alert('this ul has 1 li');
}

答案 2 :(得分:0)

您正在使用类li计算嵌套在代码中的taglib-ratings的总数。相反,您需要遍历该类的每个ul然后计算该特定li

ul的数量

答案 3 :(得分:0)

$('ul.tablib-ratings').each(function(i,ul){
    li_amount = $(ul).find('li').length;
    $(ul).addClass(li_amount+"-thumbs");
});

这将检查所有ul.tablib-ratings,并根据li金额添加课程。但是,类名称将类似于1-thumbs2-thumbs等...但您可以使用几行代码轻松将数字映射到其书面版本。

希望它有所帮助, 思南。

答案 4 :(得分:0)

 $(".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');
      }

  });

http://jsbin.com/ofeda/2

LINK TO UPDATED JSbin