Работа со стилями CSS (возникла проблемка)
Привет всем!
Пишу "мини-парсер" CSS-стилей в целях исправления багов в Ие6. Для примера, приведу часть кода: var sheet = document.styleSheets[0]; var rulezz = sheet.rules; for(var j=0; j<rulezz.length; j++){ var rule = rulezz[j]; if( rule.selectorText.match('.l-cont ul li:hover ul') ){ alert('Yep!'); }else{ alert(rule.selectorText); } } Итак, суть проблемы: alert('Yep!') не показывался ни разу...)))))) В alert(rule.selectorText) содержится именно та, искомая строка '.l-cont ul li:hover ul' Но всё равно, условие if( rule.selectorText.match('.l-cont ul li:hover ul') ) выполняться ни в какую не хочет. Я даже уже не знаю что делать :blink: Помогите плиз) :-? Заранее спасибо откликнувшимся! pS: К странице подключен JQuery, так что можно что-то сделать с его помощью) |
а если так
if( rule.selectorText.match(/\.l-cont ul li:hover ul/) ){ |
я подумал о том же, и в данный момент у меня написано примерно так:
if( rule.selectorText.match(/.l-cont ul li:hover ul/i) ){ кстати, еще вопрос возник... если написать вот так: if( rule.selectorText == '.l-cont ul li:hover ul' ){ данная конструкция, как ни странно, не работает... я в шоке) alert(rule.selectorText) показывает что rule.selectorText = .l-cont ul li:hover ul а условие if( ... ){ всё равно не выполняется... странный этот selectorText :-? |
а ты попробуй alert('#'+rule.selectorText+'#');
видимо есть пробелы... |
ммм... ну выводит он #.l-cont ul li:hover ul#, а толку то?
пока что работает лишь если "делать всё по-правилам", то есть указывать как regExp. надо посмотреть есть ли у ДЖКвери подобные функции ;) |
может пробелов между словами больше оного? я вообще хз почему регулярка срабатывает а прямое сравнение нет...
|
… rule.selectorText/**/.toLowerCase()/**/.match('.l-cont ul li:hover ul') … |
Оу! неожиданное решение)))))) subzey, спасибо! работает... точнее работает только для стилей полностью в нижнем регистре :)
Вобщем оставлю ка я регЭксп) Всем спасибо! |
rule.selectorText.toLowerCase().match('.l-cont ul li:hover ul'.toLowerCase()) :) |
ггг) можно и так))))))))
а вот теперь другой вопрос... нагрузззззкааааааа) что быстрее, просто регекспом проверить или 2 раза выполнять toLowerCase(), с учетом того что этому скрипту придется проверять более 2000 правил за раз) к тому же это всё в Ие6 :blink: |
Часовой пояс GMT +3, время: 19:10. |