Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.01.2014, 14:32
Аспирант
Отправить личное сообщение для housewm Посмотреть профиль Найти все сообщения от housewm
 
Регистрация: 21.12.2010
Сообщений: 41

Помогите разобраться с .each() в jquery
У меня на странице n количество элементов с классом class в которых содержатся числа

<span class="class">123</span>


в некоторых числа записанны со знаком + некоторые с -

как сделать перебор всех этих элементов с классом class чтобы те у которых знак + цвет поменялся на зеленый а те у которых - поменялся на красный?

нашел что перебор всех элементов можно сделать четех .each() но не могу понять как он работает

знаки определяю через регулярные выражения

var pattern = /-[0-9]/i;
    if(pattern.test($('.class').text())){
    $('.class').addClass('red');
    }else{
    $('.class').addClass('green');
    }
Ответить с цитированием
  #2 (permalink)  
Старый 24.01.2014, 14:44
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от housewm
с классом class
С фантазией проблемы?
danik.jsа на тебя нет!

Сообщение от housewm
как сделать перебор всех этих элементов с классом class чтобы те у которых знак + цвет поменялся на зеленый а те у которых - поменялся на красный?
Без явного перебора...

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
$(function (){
	$('.class:contains("-")').css('color','red');
	$('.class:contains("+")').css('color','green');
});
</script>
</head>
<body>
<span class="class">123</span>
<span class="class">-123</span>
<span class="class">+123</span>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 24.01.2014, 14:45
Аспирант
Отправить личное сообщение для housewm Посмотреть профиль Найти все сообщения от housewm
 
Регистрация: 21.12.2010
Сообщений: 41

делаю вот так

$('span').each(function() {
	var pattern = /-[0-9]/i;
        if(pattern.test($('span').text())){
    $('span').addClass('red');
    }else{
    $('span').addClass('green');
    }
    });


всем элементам добавляется класс red если хоть в одном есть -
Ответить с цитированием
  #4 (permalink)  
Старый 24.01.2014, 14:47
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от housewm
но не могу понять как он работает
http://api.jquery.com/each
Сообщение от housewm
знаки определяю через регулярные выражения
Почему не parseFloat() < 0 ?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 24.01.2014, 14:47
Аспирант
Отправить личное сообщение для housewm Посмотреть профиль Найти все сообщения от housewm
 
Регистрация: 21.12.2010
Сообщений: 41

спасибо,
Ответить с цитированием
  #6 (permalink)  
Старый 24.01.2014, 14:48
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от housewm
всем элементам добавляется класс red если хоть в одном есть -
Так ты так и написал!
Используй this вместо
$('span')
внутри
obj.each();
Ответить с цитированием
  #7 (permalink)  
Старый 24.01.2014, 14:48
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от ksa
danik.jsа на тебя нет!

Ну хоть не «a» или «c» ...
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 24.01.2014, 14:50
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Ответить с цитированием
  #9 (permalink)  
Старый 24.01.2014, 14:51
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от housewm
$('span').
Функция $ (да, это функция с таким вот именем, если вдруг не вкурсе) возвращает коллекцию элементов, соответствующих селектору. Таким образом ты окрашиваешь все span'ы на странице разом. Причем делаешь ты это при каждой итерации each. В результате если у тебя есть хоть один спан с минусом, и хоть один с плюсом - то у всех span'ов в результате будут оба класса - red и green. Неужели это трудно понять?
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с jquery слайдером!!! Andy76 jQuery 0 25.11.2011 18:12
Помогите разобраться со скриптом jQuery emere jQuery 13 08.10.2011 09:46
Помогите разобраться со скриптом artnik jQuery 0 23.01.2011 18:53
Помогите разобраться с событиями и jquery prowoke jQuery 0 09.12.2010 11:40
Помогите разобраться со скриптом слайдшоу InviS jQuery 0 23.09.2010 14:47