2014-04-01 3 views
0

동적 HTML 구조가 있습니다. 이와 같이 :jQuery를 통해 div에 클릭 가능한 링크

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

나는이 http 링크와 다른 모든 링크를 클릭하고 싶습니다.

어떻게 찾을 수 있으며 jQuery를 통해 클릭 할 수 있습니까?

+0

"jquery를 통해 클릭 가능"으로 무엇을 말합니까 ??? div에 id를 추가하고 $ ('# idDiv')를 사용할 수 있습니다. 클릭 이벤트 (...)를 클릭하면 – 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> 

만약 어떤 이유를, 당신이 시도 할 수 자바 스크립트 :

<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

이지만, 당신이 시작할 수 있습니다에 일반 텍스트 URL을 대체하기 위해 노력하고 있습니다. 텍스트를 가져 와서 URL로 변환 한 다음 다시 넣어야합니다. 방법은 다음과 같습니다. 그리고 여기 내 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]); 
    }); 
    }); 

}); 
관련 문제