通过jQuery可点击链接到div

时间:2014-04-01 15:24:47

标签: javascript jquery html

我有动态HTML结构。像这样:

 <div class="message-text">Lorem ipsum http://google.com dolour sit
 amet<br>&nbsp;</div>

我想点击此http链接和其他所有链接。

如何找到它并通过jQuery点击?

3 个答案:

答案 0 :(得分:1)

如果我理解你的话,你可以使用普通的超链接:

<div class="message-text">Lorem ipsum<a href="http://google.com">http://google.com</a> dolour sit amet<br>&nbsp;</div>

如果由于任何原因不在选项中,您可以尝试使用javascript:

<script type="text/javascript">

var a = document.createElement('a');
var linkText = document.createTextNode("Lorem ipsum http://google.com dolour sit
 amet<br>&nbsp;");
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+_\-\.%=&amp;]*)?)?(#[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]);
     });
   });

});