2014-01-13 4 views
0

Я хочу узнать, содержит ли элемент число, независимо от того, сколько это будет времени. Мне нужно различие между словами и цифрами или другими персонажами.jquery, если элемент содержит номер

fiddle

<ul> 
    <li><a href="#">Word</a></li> <!-- this is a word --> 
    <li><a href="#">1</a></li> 
    <li><a href="#">2</a></li> 
    <li><a href="#">...</a></li> <!-- this is a word --> 
    <li><a href="#">15</a></li> 
    <li><a href="#">30</a></li> 
    <li><a href="#">100</a></li> <!-- this is a number --> 
    <li><a href="#">Word</a></li> 
</ul> 
+0

http://jsfiddle.net/4P9CC/3/ – softsdev

ответ

4

Для этого вы можете использовать функцию isNumeric.

demo

$("li a").each(function() { 
var num = $(this).text(); 
if ($.isNumeric(num)) { 
     $(this).addClass('numb'); 
    } else { 
     $(this).addClass('noNumb'); 
    } 
}); 

demo

1

Попробуйте это. Используйте isNaN, чтобы проверить, является ли это номером или нет.

$("li a").each(function() { 
    var xc = $(this).text(); 
    var isNum = isNaN(xc); 
    if (isNum) { 
      $(this).attr('class', 'numb'); 
     } else { 
      $(this).attr('class', 'noNumb'); 
     } 
}); 
0

как сказал C-связь, IsNumeric ..

$("li a").each(function() { 
var toCheck = $(this).text(); 
if (isNumeric(toCheck)) { 
     $(this).attr('class', 'is_number'); 
    } else { 
     $(this).attr('class', 'is_not_number'); 
    } 
}); 
0

Вы также можете сделать это с помощью Regex

Reguler ехр '/\ d/ '

$ (это) .text(). Спичка (/ \ d /)

$("li a").each(function() { 
    var matches = $(this).text().match(/\d/); 
    if (matches){ 
     $(this).attr('class', 'numb');  
    }else{ 
     $(this).attr('class', 'noNumb');  
    } 
}); 

Fiddle

0
$("li a").each(function() { 

var xc = $(this).text(); 

    if ($.isNumeric(xc)) { 
    $(this).attr('class', 'numb'); 
    } else { 
$(this).attr('class', 'noNumb'); 
    } 
}); 
Смежные вопросы