這裏我有html結構。它在頁面上重複多次。用jQuery計算字符以便乘法輸入
<article class="boo">
<h4>Here goes the title</h4>
</arcticle>
我想計算文章中每個標題h4中的字符數。
$('article.boo h4').text().length > 70
計算所有標題中的字符總數。我想要的是檢查每個標題是否超過70個字符。
在這種情況下循環遍歷所有元素並進行驗證的最佳方法是什麼?
謝謝
這裏我有html結構。它在頁面上重複多次。用jQuery計算字符以便乘法輸入
<article class="boo">
<h4>Here goes the title</h4>
</arcticle>
我想計算文章中每個標題h4中的字符數。
$('article.boo h4').text().length > 70
計算所有標題中的字符總數。我想要的是檢查每個標題是否超過70個字符。
在這種情況下循環遍歷所有元素並進行驗證的最佳方法是什麼?
謝謝
你可以使用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
}
}
如果你的最佳手段「最簡單」的第一個選項的定義可能是要走的路,如果用最好的,你的意思是「最高效」使用第二個,但如果有必要,可以與選擇的緩存,從而可以提高不會在每次循環中選擇一個元素迭代
您可以使用jQuery的each
方法來遍歷一個jQuery對象的元素:
$("article.boo h4").each(function() {
console.log($(this).text().length);
});
,如果你想用簡單的JavaScript嘗試以下
var h4s = document.getElementsByTagName("H4");
i = 0;
while (h4s[i]) {
//validate here
}
,或者您可以使用jquery each
$("article.boo h4").each(function (index, domEle) {
if($(domEle).text().length>70)
{
this.style.color = "blue";
} else {
this.style.color = "";
}
});
沒錯。離得很近,這就是吸引我的語法。謝謝! – Yulia 2012-01-05 09:13:27