我有动态生成的文本,其中可能包含指向网页的链接。我想自动检测用户是否有“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的begingin中。我不知道如何在整个文本周围包装ahref,使其成为一个超链接。
var foundin = $('*:contains("www.")');
foundin.prepend("<a href='test.php'>");
foundin.append("</a>");
答案 0 :(得分: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>");