【发布时间】:2013-12-19 03:37:45
【问题描述】:
我正在尝试创建一个 jQuery 函数来计算每个锚标记的字符长度,如果字符数大于“5”,则应用一个类。此外,如果字符数大于 7 (4 + 3),则应用不同的类。
这就是我要去的地方(JSFIDDLE:http://jsfiddle.net/2mg3q/):
HTML
<div id="global-nav">
<ul id="nav">
<li><a href="#">One</a></li>
<li><a href="#">Item5</a></li>
<li><a href="#">Item with11</a></li>
<li><a href="#">One</a></li>
</ul>
</div>
CSS
#nav{
list-style:none;
margin:0;
padding:0;
}
#nav li a{
display:block;
padding:5px;
border:1px solid #ccc;
}
#nav li a.TEST1{
border-color:red;
}
#nav li a.TEST2{
border-color:blue;
}
JS
var navChars = 4;
$('#global-nav #nav li a').filter(function() {
if($(this).text().length > navChars){
$('#global-nav #nav li a').addClass('TEST1');
}else if($(this).text().length > navChars + 3){
$('#global-nav #nav li a').addClass('TEST2');
}
});
没有“else”语句,TEST1 和 TEST2 类都被应用于锚标记。使用 else 语句,只有 TEST1 应用于锚标记。
我使用的原始 JS & 我基于上面的内容在单一条件下工作得很好,但现在我需要适应至少 2 个可能的字符长度。
我修改(被黑)的原始 JS:
var navChars = 13;
$('#global-nav #nav li a').filter(function() {
return $(this).text().length > navChars;
}).addClass('navMultiLine');
【问题讨论】:
-
jsfiddle.net/2mg3q/9 看看这个小提琴
-
@dan 您希望
TEST1应用于长度大于 4 或同时应用于 4 和 (4+3) 的a? -
如果长度大于5应用TEST1,如果大于7只应用class TEST2
标签: javascript jquery if-statement conditional