2016-06-21 112 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元素。