JavaScript/JQuery字符串替换
我有以下字符串,它是一个CSS选择器:JavaScript/JQuery字符串替换,javascript,jquery,css,regex,css-selectors,Javascript,Jquery,Css,Regex,Css Selectors,我有以下字符串,它是一个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 >
#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
干杯
EefJavascript
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
[]
见埃米尔·斯滕斯特伦的回答: