2014-04-01 69 views
0

我有動態的HTML結構。像這樣:通過jQuery進入div的可點擊鏈接

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

我想要點擊這個http鏈接和其他所有鏈接。

我如何找到它,並通過jQuery進行點擊?

+0

你的意思是「通過jquery進行點擊」? 您可以添加一個id到div並使用$('#idDiv')。click(...)捕捉click事件 – Alist3r

+0

將鏈接放入標籤 – pj013

回答

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); 

我希望這可以幫助你!

0

如果你試圖動態替換純文本的URL網址,可點擊(其HTML代表)有一個相當不錯的討論here

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]); 
    }); 
    }); 

});