0

我动态生成了可能包含网页链接的文本。我想自动检测用户是否有“www.someaddress.com”或“ http://someaddress.com ”或“ http://www.someaddress.com ”,并使其成为真正的超链接,而不仅仅是文本。

这是 HTML:

你好,我的名字是杰克,我做了一个网站。在 www.jakewebsite.com 上查看。
<div class="text_container">
Hello my name is Frank and I made a website. Check it out at www.frankwebsite.com. 

</div>
<div class="text_container">
Hello my name is Jeff and I made a website. Check it out at www.jeffwebsite.com. 

</div>

我试图尝试编写一些 jQuery 代码,以至少将 www 表达式包装在 aHref 标记中,但它所做的只是将 aHref 放在 text_container 的开头。我也不知道如何将 ahref 包裹在整个文本周围以使其成为超链接。

var foundin = $('*:contains("www.")');

foundin.prepend("<a href='test.php'>");
foundin.append("</a>");
4

1 回答 1

0

正如 deweyredman 所说,您可能应该使用正则表达式来识别链接。此外,由于 :contains()、prepend() 和 append() 的工作方式,您会看到当前行为。您在这里所做的是查找标记包含字符串“www.”的所有实例,然后将标记添加到内部 html 中,然后将标记附加到该标记中。从而得到你的行为。相反,您想要做的就是像这样重新分配 html。

var foundin = $('div:contains("www.")');

var textVal = foundin.text();
foundin.html("<a href='test.php'>" + textVal + "</a>");
于 2013-11-07T18:08:20.230 回答