我有动态HTML结构。像这样:
<div class="message-text">Lorem ipsum http://google.com dolour sit
amet<br> </div>
我想点击此http
链接和其他所有链接。
如何找到它并通过jQuery点击?
答案 0 :(得分:1)
如果我理解你的话,你可以使用普通的超链接:
<div class="message-text">Lorem ipsum<a href="http://google.com">http://google.com</a> dolour sit amet<br> </div>
如果由于任何原因不在选项中,您可以尝试使用javascript:
<script type="text/javascript">
var a = document.createElement('a');
var linkText = document.createTextNode("Lorem ipsum http://google.com dolour sit
amet<br> ");
a.appendChild(http://google.com);
a.href = "http://google.com";
document.body.appendChild(a);
我希望这对你有帮助!
答案 1 :(得分:0)
如果您尝试将纯文本网址动态替换为可点击的网址(其HTML代表性),则可以进行非常好的讨论here
答案 2 :(得分:0)
这不是一个详尽的答案,但它可能会让你开始。你必须把文本,把它变成一个网址然后把它放回去。这是怎么回事。这是我的fiddle。
$(function(){
var newStr;
var matchStr=$("div.message-text").html();
var REGEX_MATCHER_URL = LINK_DETECTION_REGEX = /(([a-z]+:\/\/)?(([a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel|local|internal))(:[0-9]{1,5})?(\/[a-z0-9_\-\.~]+)*(\/([a-z0-9_\-\.]*)(\?[a-z0-9+_\-\.%=&]*)?)?(#[a-zA-Z0-9!$&'()*+.=-_~:@/?]*)?)(\s+|$)/gi
$("div.message-text").each(function(index, div){
var newDiv;
var oldDiv;
var oldTextArray;
var oldDivHtml = $(div).html();
$(div).html(""); // clear it
var matches = oldDivHtml.match(REGEX_MATCHER_URL);
$.each(matches, function(index, value){
var holder = oldDivHtml.split(value);
$(div).append(holder[0]);
$(div).append($("<a>").attr("href", value).html(value));
$(div).append(' ' + holder[1]);
});
});
});