1

我正在使用其他人的应用程序,并希望更改具有特定 href 的任何 <a></a> 标记之间的 innerHTML。但是这些链接没有与之关联的类或 ID,我无法编辑代码来为它们提供类或 ID。有没有办法通过 JavaScript 中的 href 来获取标签?我想做类似的事情:

var theLink = document.getElementByHref("example.com");

否则,如果这是不可能的,我可以遍历页面中的所有链接并选择具有我正在寻找的特定 href 和 innerHTML 的链接吗?

4

10 回答 10

2

您可以使用 DOM3-attribute-selector ( jQuery dochref ) 来获取在其属性中包含特定文本的所有元素。它看起来像

$('a[href*="example.com"]')

但是,这可能不是您真正想要的 - 不仅该域的 url 可能包含此字符串。你可能会做类似开始的事情:

$('a[href^="http://example.com"]')

但要获得精确且可能更复杂的匹配,您无需绕过自定义过滤器

$('a[href]').filter( function() {
     return this.hostname == "example.com";
     // or check other properties of the anchor element
})
于 2012-10-10T15:57:13.173 回答
1

选择属性中具有example.com值的所有元素href

现场演示:http: //jsfiddle.net/NTGQz/

$('a[href*="example.com"]');

您也可以尝试这个,只是为了更具体并遵循 OP “理想”答案:

现场演示:http: //jsfiddle.net/ksZhZ/

jQuery.fn.getElementsByHref = function(str){ return $('a[href*="' + str + '"]'); };

$(document).ready(function(){        
   elems = $(this).getElementsByHref('example.com');
});
于 2012-10-10T15:39:56.647 回答
0

jQuery 有很多选择器。您在这里想要的是属性选择器。

$('a[href="example.com"')
于 2012-10-10T15:40:03.197 回答
0

您可以使用属性选择器:

$('a[href="http://example.com"]')
于 2012-10-10T15:40:05.490 回答
0

使用 JQuery属性选择器,您可以这样做:

$('a[href="example.com"]')
于 2012-10-10T15:40:18.563 回答
0

试试这个

$('a[href*="example.com"]');

这将选择在 href 属性中包含 example.com 的链接。

于 2012-10-10T15:40:22.940 回答
0
$('a[href="http:google.com"]')
于 2012-10-10T15:41:05.240 回答
0

你可以用jquery做到这一点:http: //api.jquery.com/attribute-equals-selector/

例如:linksToGoogle = $('a[href="http://google.com"]');

于 2012-10-10T15:43:03.290 回答
0

你可以在没有 jQuery 的情况下做到这一点。

var links = document.querySelectorAll('a[href*="example.com"]');
于 2012-10-10T15:46:04.233 回答
0

如果您的用户在IE8+ 或任何其他浏览器上,您可以使用querySelectorAll本地执行此操作。此方法返回匹配元素的NodeList

document.querySelectorAll('a[href="exact/value.html"]');    // exact match
document.querySelectorAll('a[href*="partial/value.html"]'); // partial match
document.querySelectorAll('a[href^="starts/with"]');        // href starts with
document.querySelectorAll('a[href$=".html"]');              // href ends with
于 2012-10-10T15:49:56.253 回答