JavaScript / JQuery строка заменяет - PullRequest
0 голосов
/ 07 июля 2010

У меня есть следующая строка, которая является селектором CSS:

#downloads > ul > li:nth-of-type(1) > ul > li:nth-of-type(3) > a

Этот CSS-селектор отлично работает в FireFox, CHrome и Safari, но IE 6 не поддерживает селектор n-го типа. Селекторы CSS, с которыми я работаю, созданы Nokogiri, и я не могу их изменить.

бросил тестирование У меня работает следующее:

#downloads > ul > li:nth(0) > ul > li:nth(2) > a

Изменение n-го селектора на обычный n-й и вычитание одного из n-го значения. Я пытался программно с JS преобразовать селектор CSS из nth-типа в обычный nth? Так что после запуска выкинуло:

#downloads > ul > li:nth-of-type(1) > ul > li:nth-of-type(3) > a

станет

#downloads > ul > li:nth(0) > ul > li:nth(2) > a

Приветствия

Eef

1 Ответ

1 голос
/ 07 июля 2010

Javascript

var str = "#downloads > ul > li:nth-of-type(1) > ul > li:nth-of-type(3) > a";
str = str.replace(/:nth-of-type\(([0-9]+)\)/g, function(match, first) {
   return ":nth(" + (parseInt(first)-1) + ")";
});

alert(str); // -> #downloads > ul > li:nth(0) > ul > li:nth(2) > a

[ Посмотреть в действии ]

...