这个jQuery似乎没有像我期望的那样工作:
$('#topic li a').filter(function () {
if ($(this).text() > 410) {
$(this).parent('li').addClass('wrap');
}
});
如果<a href=>....</a>
中的文本超过410个字符,jQuery应该可以解决,如果它应该将类.wrap添加到父li。
任何人都有任何想法,我做错了什么?
答案 0 :(得分:10)
jQuery的text()
函数返回一个普通的字符串
通过编写$(this).text() > 410
,您将检查字符串本身是否超过410,方法是尝试将字符串解析为数字。
您需要检查字符串的长度,如下所示:
if ($(this).text().length > 410)
答案 1 :(得分:4)
$('#topic li a').filter(function () {
if ($(this).text().length > 410) {
$(this).parent('li').addClass('wrap');
}
});
当你$(this).text() > 410
尝试将文本转换为要比较的整数时,很可能是将长字符串转换为0之类的数字。使用.length
来获取字符串的长度返回
答案 2 :(得分:2)
SLaks'答案已经很好,但我对你的代码感到困惑。
也许你想这样写,
$('#topic li a').filter(function(){
return $(this).text().length > 410;
}).parent('li').addClass('wrap');
或使用.each()
,
$('#topic li a').each(function(){
if ($(this).text().length > 410) {
$(this).parent('li').addClass('wrap');
}
});