Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在文本中查找和更改与js的链接_Javascript_Html_Regex_Dom_Hyperlink - Fatal编程技术网

Javascript 在文本中查找和更改与js的链接

Javascript 在文本中查找和更改与js的链接,javascript,html,regex,dom,hyperlink,Javascript,Html,Regex,Dom,Hyperlink,我有一个文本,必须作为电子邮件发送。但是,为了使邮件具有其布局,我们需要添加一些样式。 我们必须做的是: 1在文本中找到一个或多个此格式的链接 <a href="RANDOM URL HERE">RANDOM TEXT</a> 2将链接更改为以下格式: <a href="RANDOM URL HERE" style="color: #FFFFFF; text-decoration: none;"><span style="color: #FFFFF

我有一个文本,必须作为电子邮件发送。但是,为了使邮件具有其布局,我们需要添加一些样式。 我们必须做的是: 1在文本中找到一个或多个此格式的链接

<a href="RANDOM URL HERE">RANDOM TEXT</a>

2将链接更改为以下格式:

<a href="RANDOM URL HERE" style="color: #FFFFFF; text-decoration: none;"><span style="color: #FFFFFF;">RANDOM TEXT</span></a> 

我不知道我如何才能最好地做到这一点,与正则表达式或与DOM


非常感谢

在我看来,最好的方法是创建一个css类并将其添加到链接中。您不需要添加跨距标记!使用DOM是最好的方法。

首先,您应该考虑不要使用正则表达式来处理HTML/XML标记。您可以在此处阅读原因:)

然后,为了回答问题,您应该执行以下操作:

var div = document.createElement("div"),
    links;

div.innerHTML = textOfYourEmail;
links = div.getElementsByTagName("a");

for (var i = links.length; i--;) {
    var link = links[i],
        span = document.createElement("span");

    link.style.textDecoration = "none";
    link.style.color = "#fff";
    span.style.color = "#fff";

    while (link.firstChild) {
        span.appendChild(link.firstChild);
    }
    link.appendChild(span);
}

textOfYourEmail = div.innerHTML;

它使用嵌入式方法进行DOM操作。它快速可靠。

既然您已经在
a
标记中修改了样式,为什么还要插入span?因为有些邮件客户端只查看“”标记中的样式,有些只查看“”标记中的样式,但它是用于将用作电子邮件的文本,而电子邮件不使用css类,所以它必须是内联的