Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.08.2014, 16:39
Аспирант
Отправить личное сообщение для Georrg Посмотреть профиль Найти все сообщения от Georrg
 
Регистрация: 06.08.2014
Сообщений: 58

Проблемка с изменением css стиля jQuery
Задача следующая:
Нужно изменять цвет текста у определенных задач в модуле ганта. Для этого я написал селектор, но почему-то он работает не совсем верно:
function getValueRMT(item){

		jQuery('[task_id='+item.id+']').addClass('redcolor');
};

где нужная строка(на которую нацелен селектор), выглядит следующим образом:

Класс redcolor: .redcolor{color: red;}
НО! Вместе выделения данного контеста выделяется подобный ему(их всего 3 нужно выделить именно этот ), пример:
<div task_id="22" class="gantt_task_line redcolor" style="left: 25793.006944444445px; top: 282px; height: 30px; line-height: 30px; width: 1942px;">
Ответить с цитированием
  #2 (permalink)  
Старый 11.08.2014, 16:57
Профессор
Отправить личное сообщение для WorM32 Посмотреть профиль Найти все сообщения от WorM32
 
Регистрация: 11.02.2014
Сообщений: 303

Селектор неправильный. У вас класс ставится родителю выделенного элемента.
Ответить с цитированием
  #3 (permalink)  
Старый 11.08.2014, 17:12
Аспирант
Отправить личное сообщение для Georrg Посмотреть профиль Найти все сообщения от Georrg
 
Регистрация: 06.08.2014
Сообщений: 58

Нет, проблема не в этом(конечно селектор сейчас не на тот элемент)Но класс должен был добавиться хотябы к родительскому элементу, а его там нет

Последний раз редактировалось Georrg, 11.08.2014 в 17:15. Причина: изменилось мнение
Ответить с цитированием
  #4 (permalink)  
Старый 11.08.2014, 17:16
Профессор
Отправить личное сообщение для WorM32 Посмотреть профиль Найти все сообщения от WorM32
 
Регистрация: 11.02.2014
Сообщений: 303

http://learn.javascript.ru/css-selectors#отношения
http://api.jquery.com/child-selector/
Ответить с цитированием
  #5 (permalink)  
Старый 11.08.2014, 17:27
Аспирант
Отправить личное сообщение для Georrg Посмотреть профиль Найти все сообщения от Georrg
 
Регистрация: 06.08.2014
Сообщений: 58

спасибо конечно, полезная информация, только на главный вопрос не отвечает. Почему селектор выбирает только 1 из 3 таких полей(у всех трех одинаковый айдишники, только классами отличаются.) Выборку я делаю по таск айди, но по НЕПОНЯТНЫМ мне причинам, класс добавляется только к 1. 2 других вроде как выделились(если в консоль вывести кол-во элементов удовлетворяющих запросу, то их 3) Но класс recolor добавляется только к 1 из 3. Вот это основная моя проблема.

Последний раз редактировалось Georrg, 11.08.2014 в 17:29. Причина: Добавление данных
Ответить с цитированием
  #6 (permalink)  
Старый 11.08.2014, 17:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Georrg,
Вопрос пора в FAQ заносить (если его там нет).
Ответить с цитированием
  #7 (permalink)  
Старый 11.08.2014, 17:47
Аспирант
Отправить личное сообщение для Georrg Посмотреть профиль Найти все сообщения от Georrg
 
Регистрация: 06.08.2014
Сообщений: 58

рони,
Немного покопавшись в коде, я кое что нашел.
1) Т.К. эта функция вызывается много раз, то селектор сработал даважды:
а)
[div.gantt_task_line, prevObject: n.fn.init[1], context: document, selector: "[task_id=22]", jquery: "1.11.0", constructor: function…]
0: div.gantt_task_line.redcolor
context: document
length: 1
prevObject: n.fn.init[1]
selector: "[task_id=22]"

б)
0: div.gantt_row.redcolor
1: div.gantt_task_row.redcolor
2: div.gantt_task_line.redcolor
context: document
length: 3
prevObject: n.fn.init[1]
selector: "[task_id=22]"
__proto__: Object[0]

Вот, а класс redcolor Добавляется исходя из первого селектора. Второй почему то его не перекрывает. Наверное это уже не проблема css. Теперь совсем не понятно куда двигаться(
Ответить с цитированием
  #8 (permalink)  
Старый 11.08.2014, 17:48
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Georrg
Почему селектор выбирает только 1 из 3 таких полей
потому что jQuery не умеет выбирать по ID тегам несколько элементов, так как использует стандартный getElementById который возвращает лишь первый найденный, если вам нужно все же найти несколько элементов, используйте встроенный в браузер движок выборки по селекторам. Примерно так:
jQuery(document.querySelectorAll('[task_id='+item.id+']')).addClass('redcolor');
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #9 (permalink)  
Старый 11.08.2014, 17:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Georrg,
вы кавычки то поставили в селектор?
Ответить с цитированием
  #10 (permalink)  
Старый 11.08.2014, 17:51
Аспирант
Отправить личное сообщение для Georrg Посмотреть профиль Найти все сообщения от Georrg
 
Регистрация: 06.08.2014
Сообщений: 58

Сообщение от devote Посмотреть сообщение
потому что jQuery не умеет выбирать по ID тегам несколько элементов, так как использует стандартный getElementById который возвращает лишь первый найденный, если вам нужно все же найти несколько элементов, используйте встроенный в браузер движок выборки по селекторам. Примерно так:
jQuery(document.querySelectorAll('[task_id='+item.id+']')).addClass('redcolor');
большое спасибо! Консоль правда всеравно ругается(Uncaught SyntaxError: Failed to execute 'querySelectorAll' on 'Document': '[task_id=22]' is not a valid selector. ) Но зато я знаю куда двигаться!!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу jquery, js, html, css спеца. AlexBell Работа 41 23.11.2012 08:20
Задание Css свойств по средствам Jquery IONEX jQuery 5 09.01.2012 16:00
jQuery and css Suharik jQuery 4 15.11.2010 22:31
JQuery CSS анализатор javascript jQuery 2 15.08.2010 21:27
проблемка jquery form + jquery 1.4 PooH63 jQuery 2 02.04.2010 11:24