Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.07.2010, 23:20
Новичок на форуме
Отправить личное сообщение для daykkin Посмотреть профиль Найти все сообщения от daykkin
 
Регистрация: 30.07.2010
Сообщений: 8

removeClass() по маске
Подскажите уважаемые как мне имея 10 классов в блоке div удалить только те, которые начинаются с символов скажем "optical" ? Причем это все нужно делать в функции click имея уже готовый div блок в $(this). Гугл и официальная api документация - не помогли. Зашел в тупик, уповаю на Вашу помощь.
Ответить с цитированием
  #2 (permalink)  
Старый 31.07.2010, 09:11
Аватар для sysya
Профессор
Отправить личное сообщение для sysya Посмотреть профиль Найти все сообщения от sysya
 
Регистрация: 27.12.2009
Сообщений: 292

двигайте в сторону регулярных выражений http://javascript.ru/search/node/регулярные+выражения
В вашем случае пробуйте играться с методом test
хотя removeClass() сам должен удалять нужный класс... или я что то недогоняю наверна...
__________________
Нет предела совершенству...

Последний раз редактировалось sysya, 31.07.2010 в 09:17.
Ответить с цитированием
  #3 (permalink)  
Старый 31.07.2010, 11:31
Новичок на форуме
Отправить личное сообщение для daykkin Посмотреть профиль Найти все сообщения от daykkin
 
Регистрация: 30.07.2010
Сообщений: 8

Спасибо за наводку
Начал копать и нашел решение этого вопроса в таком виде:
$(this)[0].className = $(this)[0].className.replace(/\bтексткласса.*\b/g, '');

Но теперь зашел в тупик в другом, не мение важном вопросе. Мне все в том же событии click все с теми же div блоком в $(this) нужно провернуть следующее - в одном месте события я должен провести проверку на наличие класса по маске и если ни одного класса нет, то я должен удалить определенный класс.

Например, у меня есть блок div c классами <div class="class-1 class-2 onclick-1 onclick-2 onclick-3 onclicks">

Я должен удалить класс "onclicks", только при условии что нет ни одного класса по маске "onclick-".

Как быть?
Ответить с цитированием
  #4 (permalink)  
Старый 31.07.2010, 12:07
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

if ( !$(this).is('[class^="onclick-"]') ) $(this).removeClass('onclicks');
Ответить с цитированием
  #5 (permalink)  
Старый 31.07.2010, 12:19
Новичок на форуме
Отправить личное сообщение для daykkin Посмотреть профиль Найти все сообщения от daykkin
 
Регистрация: 30.07.2010
Сообщений: 8

К сожалению не работает, версия jquery 1.2.6
Ответить с цитированием
  #6 (permalink)  
Старый 31.07.2010, 14:24
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

во-первых, работает даже в 1.2.6
во-вторых, расскажи подробнее про эти классы

Сообщение от daykkin
Начал копать и нашел решение этого вопроса в таком виде:
$(this)[0].className = $(this)[0].className.replace(/\bтексткласса.*\b/g, '');
и что, работает?
Ответить с цитированием
  #7 (permalink)  
Старый 31.07.2010, 15:40
Новичок на форуме
Отправить личное сообщение для daykkin Посмотреть профиль Найти все сообщения от daykkin
 
Регистрация: 30.07.2010
Сообщений: 8

эм.. да.
во первых работает, во вторых решение с поиском - не работает.
уже нашел рабочее решение в виде:
if (!$(this).attr('class').match(/onclick-\-.+?\b/))
Ответить с цитированием
  #8 (permalink)  
Старый 31.07.2010, 15:49
Аватар для sysya
Профессор
Отправить личное сообщение для sysya Посмотреть профиль Найти все сообщения от sysya
 
Регистрация: 27.12.2009
Сообщений: 292

Цитата:
if ( !$(this).is('[class^="onclick-"]') ) $(this).removeClass('onclicks');
Цитата:
К сожалению не работает, версия jquery 1.2.6
Не работает потому что всю строку проверяет с начала. Ковыряйте метод test
$(this).attr('class').test('onclick-');
так думаю сработает
__________________
Нет предела совершенству...
Ответить с цитированием
  #9 (permalink)  
Старый 31.07.2010, 16:20
Новичок на форуме
Отправить личное сообщение для daykkin Посмотреть профиль Найти все сообщения от daykkin
 
Регистрация: 30.07.2010
Сообщений: 8

И так к сожалению не работает, но выше я уже написал рабочий вариант. Правда с использованием RegEx.
Ответить с цитированием
  #10 (permalink)  
Старый 01.08.2010, 01:28
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

зачем такие сложности?
__________________
.ня
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить все инпуты по заданоой маске nws Общие вопросы Javascript 2 09.09.2009 01:46
Ввод в тестовое поле по маске vesna Общие вопросы Javascript 15 04.05.2009 13:10
Файл по маске arseniy-at-home Общие вопросы Javascript 4 20.10.2008 19:23