2014-01-29 57 views
1

請幫我在jQuery的一個簡單的問題。我有一個頁面上的列表項的負載,我需要比較它們中的字符串的長度。如果它們大於100個字符,那麼我需要向'li'添加一個類,否則沒有任何反應。 我迄今爲止代碼:比較列表項中的字符串長度

<ul id="mylist"> 
    <li>This is a string with more than 100 characters in it. This is a string with more    than 100 characters in it.</li> 
    <li>This is a string with less than 100</li> 
</ul> 

    var len = $("#mylist li").text().length; 
    $("#mylist li").each(function() { 
    if (len > 100) { 
      $(this).addClass("test"); 
    } 
    }); 

回答

0

類似下面應該工作。把你的長度檢查內循環:

 
$("#mylist li").each(function(e,el) { 
    var intLen = $(el).text().length; 
    if (intLen > 100) { 
      $(this).addClass("test"); 
    } 
}); 
+0

感謝亞歷克斯,這個作品呢! – madameFerry

1

檢查各立像這樣

$('#mylist li').each(function() { 
    if ($(this).text().length > 100) { 
     $(this).addClass("test"); 
    } 
}); 
+1

感謝安東,這個工程 – madameFerry

0

使用文本的長度:

$("#mylist li").each(function() { 
    if ($(this).text().length> 100) { 
     $(this).addClass("test"); 
    } 
}); 
+2

感謝Milind,這也適用 – madameFerry

0
var len = $("#mylist li").text().length; 

上面的代碼將使使用的整個li文本(即,總沒有。在以內的字符's)。因此它不起作用。

因此,保持它的每一個方法裏面,以檢查各li秒。

$("#mylist li").each(function() { 
    if ($(this).text().length > 100) { //individual li 
      $(this).addClass("test"); 
    } 
+1

哦,我知道了,謝謝您的解釋普利文 – madameFerry

+1

他們都是正確的答案,但我接受Praveens,因爲他告訴我在哪裏,我的錯誤是什麼。讚賞所有的答案... – madameFerry