2012-01-05 58 views
0

這裏我有html結構。它在頁面上重複多次。用jQuery計算字符以便乘法輸入

<article class="boo"> 
    <h4>Here goes the title</h4> 
</arcticle> 

我想計算文章中每個標題h4中的字符數。

$('article.boo h4').text().length > 70 

計算所有標題中的字符總數。我想要的是檢查每個標題是否超過70個字符。

在這種情況下循環遍歷所有元素並進行驗證的最佳方法是什麼?

謝謝

回答

3

你可以使用jQuery的each()方法,即:

$('article.boo h4').each(function() { 
    if ($(this).text().length > 70) { 
     //do stuff if longer than 70 chars 
    } 
}); 

或者,根據您對「最佳」的定義,您可以使用標準JavaScript for循環:

for (var x = 0, y = $('article.boo h4').length - 1; x < y; x++) } 
    if ($('article.boo h4')[x].text().length > 70) { 
     //do stuff if longer than 70 chars 
    } 
} 

如果你的最佳手段「最簡單」的第一個選項的定義可能是要走的路,如果用最好的,你的意思是「最高效」使用第二個,但如果有必要,可以與選擇的緩存,從而可以提高不會在每次循環中選擇一個元素迭代

+0

沒錯。離得很近,這就是吸引我的語法。謝謝! – Yulia 2012-01-05 09:13:27

0

您可以使用jQuery的each方法來遍歷一個jQuery對象的元素:

$("article.boo h4").each(function() { 
    console.log($(this).text().length); 
}); 
1

,如果你想用簡單的JavaScript嘗試以下

var h4s = document.getElementsByTagName("H4"); 
i = 0; 
while (h4s[i]) { 
//validate here 
} 

,或者您可以使用jquery each

0
$("article.boo h4").each(function (index, domEle) { 
      if($(domEle).text().length>70) 
{ 
       this.style.color = "blue"; 
      } else { 
       this.style.color = ""; 
      } 
     });