目前,我有这一行:
this.html(this.html().replace(/\x3C\x2F?[^\x3E]+\x3E/gi, ''));
但是,我想要一句“if子句”的话来说,
IF (this.tag = "<a") {
do nothing
} ELSE {
remove tag
}
我认为没有人有任何想法?
[编辑]:我想我可能要做一个“FOR EACH”循环......我想...... [/编辑]
^。^
答案 0 :(得分:4)
jQuery有“:not”伪选择器。
$(':not(a)', this).remove()
答案 1 :(得分:2)
replace
可以将函数作为第二个参数
this.html(this.html().replace(/<\/?([a-z]+)[^>]*>/gi, function(match, tag) {
return (tag.toLowerCase() === "a") ? match : "";
}));
我没有使用十六进制编码的字符,因为它更容易以这种方式阅读。
答案 2 :(得分:2)
this.html(this.html().replace(/<\/?([b-z]+)[^>]*>/gi, function(match, tag) {
return (tag === "a") ? match : "";
}));
如果您要保留“a”代码,请将正则表达式从[a-z]
更改为[b-z]