-2

前段时间,我请求帮助自动更改我网站的某些重复名称并使其变为斜体。在您的帮助下,我设法使用此脚本完成了我想做的事情:

function change() {
    var words = new Array("Nymphaea", "Nelumbo", "Iris", "Hemerocallis", "Hibiscus");
    var html = document.body.innerHTML;
    for(var i = 0; i < words.length; i++) {
        var reg = new RegExp(words[i], 'g');
        var html = html.replace(reg, "<i>"+words[i]+"</i>");
    }
    document.body.innerHTML = html;
}
change();

不幸的是,我刚刚意识到我仍然有问题,因为所有图片都显示带有标签的标题。例如,如果 html 是:

<a href="......../nymphaea-alba-var-rubra.jpg" title="&lt;i&gt;Nymphaea&lt;/i&gt; alba var. rubra"><img src="/wp-uploads/gallery/nursery/nymphaea-alba-var-rubra.th.jpg" alt="&lt;i&gt;Nymphaea...&lt;/i&gt; alba var. rubra" /> </a>

图片显示一个标题,如<i> Nymphaea</i> alba var。鲁布拉。任何人都可以帮我完善代码,以免标题和替代品成为目标吗?我会很感激。

提前致谢

恩里科

4

1 回答 1

0

您可以在修改后的 HTML 上运行正则表达式以删除 title 和 alt 属性中的任何斜体标签,如下所示:

function change() {
    var words = new Array("Nymphaea", "Nelumbo", "Iris", "Hemerocallis", "Hibiscus");
    var html = document.body.innerHTML;
    for(var i = 0; i < words.length; i++) {
        var reg = new RegExp(words[i], 'g');
        var html = html.replace(reg, "<i>"+words[i]+"</i>");
    }
    html = html.replace(/([title|alt]=".*?)<i>(.*?)<\/i>(.*?")/gm, '$1$2$3');
    document.body.innerHTML = html;
}
change();
于 2013-04-21T10:36:57.140 回答