2016-06-21 76 views
1

我有一個需求,我需要extract1st hrefstring從字符串中提取錨標記href javascript/jquery

比方說,我有一個字符串是這樣的:

var LinkString="Google Link Is:<a href='www.Google.com' target='_blank' style='text-decoration:none; color:#000000;'>URL</a>"; 

現在我需要find all the anchor tagsstringextract the first anchor tag's href

我從here開始關注此示例,並試圖從字符串中找到錨標記。

但我無法獲得第一個元素的href。

var LinkString="Google Link Is:<a href='www.Google.com' target='_blank' style='text-decoration:none; color:#000000;'>URL</a>"; 
    var output = LinkString.split(/(?=<a)/)[1]; 

我也試着從output anchor tagcreating a DOM element但無法從here

我的要求,按照程序得到確切的href是得到Google.com作爲最終的輸出。

任何人都可以幫助我獲得href嗎?

回答

3

你必須使用一個虛擬html元素div到它,那麼你可以將HTML字符串值目標錨提取href:

var htm="Google Link Is:<a href='www.Google.com' target='_blank' style='text-decoration:none; color:#000000;'>URL</a>"; 
 
var href = $('<div>').append(htm).find('a:first').attr('href'); 
 
console.log(href)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

謝謝你們。想不到這樣:) – RealSteel

+0

不客氣@RealSteel。 – Jai

3

您可以創建DOM元素然後提取anchor

var LinkString="Google Link Is:<a href='www.Google.com' target='_blank' style='text-decoration:none; color:#000000;'>URL</a>"; 
 
var firstAnchor = $('<div></div>').append(LinkString).find('a:first'); 
 
console.log(firstAnchor.prop('outerHTML')); //Get HTML 
 
console.log(firstAnchor.attr('href')); //Get href attribute 
 
console.log(firstAnchor.prop('href')); //Get href property
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

你必須追加它嗎? –

+0

@MedetTleukabiluly,否則jQuery會拋出錯誤。 – Satpal

1

你可以做這樣jsfiddle

var LinkString="Google Link Is:<a href='www.Google.com' target='_blank' style='text-dec`oration:none; color:#000000;'>URL</a>"; 

var dom = jQuery.parseHTML("<div>" + LinkString + "</div>"); 
console.log(dom); 
console.log($(dom).find("[href]").attr("href")); 

這個搜索有href屬性,並打印發現的第一個HREF DOM元素。