2010-05-11 71 views
3
<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> 

我想將該類應用於基於內部LIs計數的UL。計算LI的no然後將父類添加到父類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

+0

是jsbin是坡平了 「3」,然後 「這個UL HAS3禮」 – tster 2010-05-11 11:38:07

+1

大多數的瀏覽器不支持以數字開頭的類名。它可能應該是像'col-2'那樣的東西。 – Syntactic 2010-05-11 11:53:57

回答

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

1

有一個很明顯的錯誤在這一點,如果我理解你想要做什麼:

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

你指望的li小號嵌套標籤內的總人數班級taglib-ratings。相反,你需要遍歷每個ul與階級,然後li S中的許多特定ul

3

你的代碼中不配合你的解釋......你說你想要的X大拇指,但代碼提取物沒有那樣做?

你的意思是這樣的嗎?

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

你得到「拇指-1」,而不是「一大拇指」在這裏,因爲它更容易1,000,000次,並且在評論注意到,許多瀏覽器不會欣賞1-thumbs

你得到「1-大拇指」,而不是「一大拇指」在這裏,因爲它是一個100萬次更容易:P

+1

大多數瀏覽器不支持以數字開頭的類名稱。它可能應該像'thumbs-1'那樣。 – Syntactic 2010-05-11 11:52:13

+0

Humm ...'thumbs-1'它是:P – Matt 2010-05-11 11:52:58

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

這將檢查所有ul.tablib-ratings,將增加根據類3210金額。然而,類名將類似於1-thumbs,2-thumbs等等,但您可以使用幾行更多的代碼輕鬆地將數字映射到其書寫版本。

希望它有幫助, 思南。

+0

'each'的第二個參數是DOM元素,而不是jQuery對象。 – Matt 2010-05-11 12:00:54

+0

@matt謝謝,你是正確編輯相應...但這個工作肯定... – Sinan 2010-05-11 12:07:01