2015-12-09 22 views
0

我对JavaScript编码完全陌生,我希望你能帮助我。Javascript:查找某个元素并撕掉部分链接

在我的源代码中,它的属性中有一个与内容shortlink的链接。

<link rel='shortlink' href='http://example.com/?p=14286' /> 

从这个元素我想读出HREF链接,并撕掉?p=14286查询之前的一切。

这怎么可能?使用document.getElementsByAttribute我失败了..

回答

1

您可以只是split的URL。

var link = document.querySelector("link"); //use All for a list 
var link = link.href.split("?"); 
var url = link[0]; 
var params = link[1]; 
1

您可以使用document.querySelectorAll()查找与CSS选择器匹配的所有元素,并使用CSS3属性选择器来查找其rel属性中具有指定字符串的所有元素。

至于获取你想要的链接的一部分,这是基本的字符串操作,它在这个网站和其他地方有很多答案和资源。

3

您可以使用css属性选择器[attribute = value]通过其属性选择任何elment。

所以,你可以用这个说法得到href网址:

document.querySelector("link[rel=shortlink]").href 
0

如果你可以改变HTML然后添加一个id的链接,并使用document.getElementById。如果您无法获得与document.getElementsByTagName的所有链接并搜索rel='shortlink'

// Get all link tags 
 
var links = document.getElementsByTagName('link'); 
 

 
// Search link tags for rel='shortlink' 
 
for (var i = 0; i < links.length; i++) { 
 
    var link = links[i]; 
 
    if (link.getAttribute('rel') == 'shortlink') { 
 
    var href = link.getAttribute('href'); 
 
    var query_start = href.indexOf('?'); 
 
    var query = href.substring(query_start); 
 
    alert(query); 
 
    break; 
 
    } 
 
} 
 

 
// Alternatively we can use an id 
 
var myLink = document.getElementById('myLink'); 
 
var href = myLink.getAttribute('href'); 
 
href = href.substr(href.indexOf('?')); 
 
alert(href);
<link rel='shortlink' href='http://example.com/?p=14286' /> 
 
<link rel='otherlink' href='http://example.com/?p=12345' /> 
 
<link rel='otherlink' href='http://example.com/?p=12345' id="myLink"/>

相关问题