开发者

This doesnt appear to work - count text length

开发者 https://www.devze.com 2023-01-10 22:57 出处:网络
This jQuery doesnt appear to be working as I would expect it to: $(\'#topic li a\').filter(function () {

This jQuery doesnt appear to be working as I would expect it to:

$('#topic li a').filter(function () {
  if ($(this).text() > 410) {
    $(this).parent('li').addClass('wrap');
  }
});

The jQuery should work out if the text within an <a href=>....</a> is over 410 chars, if it is it should add the class .wrap to the parent li.

Anyone hav开发者_如何学编程e any ideas what im doing wrong?


jQuery's text() function returns a normal string.
By writing $(this).text() > 410, you are checking whether the string itself is more than 410, by trying to parse the string as a number.

You need to check the length of the string, like this:

if ($(this).text().length > 410)


$('#topic li a').filter(function () {
  if ($(this).text().length > 410) {
    $(this).parent('li').addClass('wrap');
  }
});

When you do $(this).text() > 410 it tries to convert the text to an integer to compare, it most likely is converting the long string to a number like 0. Use .length to get the length of the string returned


SLaks' answer is good already but I'm confused with your code.

Maybe you want to write it this way,

$('#topic li a').filter(function(){
   return $(this).text().length > 410;
}).parent('li').addClass('wrap');

or use .each(),

$('#topic li a').each(function(){
  if ($(this).text().length > 410) {
    $(this).parent('li').addClass('wrap');
  }
});
0

精彩评论

暂无评论...
验证码 换一张
取 消