我正在尝试调整父height
的{{1}},具体取决于其子div
的文字长度。我通过应用p.descr
来实现这一点,而class
又在CSS中具有不同的height
。在下面找到jQuery代码:
$(document).ready(function(){
$('p.descr').each(function(){
if($(this).text().length < 90){
$(this).parent().addClass('bigP90');
} if($(this).text().length [90,180]) {
$(this).parent().addClass('bigP180');
} if($(this).text().length [181,270]) {
$(this).parent().addClass('bigP270');
} if($(this).text().length [271,360]) {
$(this).parent().addClass('bigP360');
} if($(this).text().length > 360) {
$(this).parent().addClass('bigP450');
}
});
});
&#13;
问题在于class
bigP90
和bigP450
已应用且工作正常,但不是中间的。这意味着语法有问题,但无法弄清楚是什么。谢谢。
答案 0 :(得分:2)
length [90,180]
不测试长度是否在90
和180
之间。方括号用于访问数组元素或对象属性,因此将length
视为数组并尝试访问数组的第180个元素。
在Javascript中测试范围没有简短的语法。您只需测试它是否高于下限,也低于上限,例如
if (val >= 90 && val < 180)
但由于您已使用之前的if
测试了下限,因此您可以使用else if
来测试下一个上限,下限测试将是多余的。
$(document).ready(function() {
$('p.descr').each(function() {
var len = $(this).text().length;
var parent = $(this).parent();
if (len < 90) {
parent.addClass('bigP90');
}
else if (len < 180) {
parent.addClass('bigP180');
}
else if (len < 270) {
parent.addClass('bigP270');
}
else if (len < 360) {
parent.addClass('bigP360');
}
else {
parent.addClass('bigP450');
}
});
});