2016-04-19 2 views
0

Я пытаюсь найти номер индекса правила css (.widget-area) в таблице стилей. Вот как я это делаю, но он возвращает undefined.Как найти индекс правила css

function findStyle(){ 
var myStylesheet=document.styleSheets[8].cssRules[".widget-area"]; 
console.log(myStylesheet); 
}; 

Если я уйду из .cssRules[".widget-area"] возвращает все правила таблицы стилей, но есть тысячи из них. Кто-нибудь знает, как это сделать?

Спасибо.

+0

Это похоже на плохую идею. Какова конечная цель? – isherwood

+1

'console.log (document.styleSheets [8])' и выяснить, что такое ключ на самом деле. –

+0

@isherwood Мне нужно динамически стереть правило css. Я пытаюсь найти индекс. Родительская тема будет часто обновляться, и мне нужно сохранить это конкретное правило неактивным. –

ответ

0

Я думаю, что вы используете .cssRules как функцию, но это объект. Поэтому, если вы хотите найти пользовательское правило, вы должны использовать что-то вроде этого:

var targetRule; 
var rules = document.styleSheets[8].cssRules; 

for (i=0; i<rules.length; i++){ 
    if (rules[i].selectorText.toLowerCase() == ".widget-area"){ 
    targetRule = rules[i]; 
    break; 
    } 
} 
+0

Спасибо за ответ. Я попробовал это и получил это «Uncaught TypeError: Не могу прочитать свойство« toLowerCase »неопределенного» с консоли. Любая идея почему? –

Смежные вопросы