Работа со стилями 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, время: 12:20. |