我需要从页面获取href
标记中的所有特定a
属性。
我在页面中需要的所有href
都看起来像这样:
href="/46089021"
整个a
看起来像这样:
<a class="truncate openwindow" target="_blank" href="/46089021" title="Blah Blah Blah">
感谢您的帮助。
我忘了提及,那些href
具有唯一的编号...每个企业在斜杠后都有不同的8位数字。不管是js还是jquery
答案 0 :(得分:1)
如果您要选择所有<a>
,且href以/
开头,后跟8位数字,则可以使用filter()
var result = $('a').filter(function(){
return /^\/[0-9]{8}$/.test( $(this).attr('href') );
});
//Print the result for testing
result.each(function(){
console.log( $(this).attr('href') );
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class="truncate openwindow" target="_blank" href="not-this-one" title="Blah Blah Blah">
<a class="truncate openwindow" target="_blank" href="/46089022" title="Blah Blah Blah">
<a class="truncate openwindow" target="_blank" href="/46089023" title="Blah Blah Blah">
<a class="truncate openwindow" target="_blank" href="not-this-one-too" title="Blah Blah Blah">
<a class="truncate openwindow" target="_blank" href="/46089025" title="Blah Blah Blah">
答案 1 :(得分:1)
使用纯JS和:
...每个企业在斜杠后都有不同的8位数字。
是否与js / jquery无关
<script>
(function () {
let aList = document.querySelectorAll('a');
aList.forEach(function(a) {
if(a.getAttribute('href').match(/^\/\d{8}$/)) {
// ... do things ...
}
});
})();
</script>
这是一个自执行功能,因此它将在DOM加载后运行(否则无法获取标签);本质上,它循环遍历文档中的所有<a>
标签,然后验证href
属性是/
,后跟精确地 8位数字。
您只需要添加我在标记了// ... do things ...
的锚点上实际要做的事情
注意: IE11(及更早版本)不支持IIRC nodeList.forEach
,因此,如果需要支持,则可以在其中原型化或仅使用jQuery代替选择器/循环。
我只使用Regex来验证href属性的格式,而不是HTML本身,因此ZA̡͊͠͝LGΌISͮ̂҉̯͈͕̹̘̱ TO͇̹̺ͅƝ̴ȳ̳ TH̘Ë͖́̉P͠O̚N̐Y可以保持原样!
答案 2 :(得分:0)
您可以使用document.links获取所有锚点,然后像这样循环遍历href
var arr = [], l = document.links;
for(var i=0; i<l.length; i++) {
var aHref=l[i].getAttribute('href');
var reg = new RegExp(/^\/\d{8}$/);
if (aHref.match(reg)){
console.log(aHref);
arr.push(aHref);
}
}
<a class="truncate openwindow1" target="_blank" href="/46089033" title="Blah Blah Blah">
<a class="truncate openwindow2" target="_blank" href="/46089044" title="Blah Blah Blah">
<a class="truncate openwindow3" target="_blank" href="/46089055" title="Blah Blah Blah">
<a class="truncate openwindow4" target="_blank" href="/460890766" title="Blah Blah Blah">
答案 3 :(得分:0)
您可以使用jQuery的map()
方法根据DOM中所有元素的属性和/或属性来构建数组。
如果要使用绝对URL ,请使用href
属性:
var hrefs = $('a').map(function() {
return this.href;
}).get();
如果要使用相对路径,请使用href
属性:
var hrefs = $('a').map(function() {
return $(this).attr('href');
}).get();
答案 4 :(得分:0)
https://jsfiddle.net/u92q068y/3/
基本上,只需在文档中查询所有anchor
标记,然后获取href
属性,然后对它们进行操作即可。多种方法可以做到这一点,但这只是一种。
const aTags = document.querySelectorAll('a');
aTags.forEach( a => console.log(a.getAttribute('href')));
<a class="truncate openwindow" target="_blank" href="/46089021" title="Blah Blah Blah">
<a class="truncate openwindow" target="_blank" href="/46089022" title="Blah Blah Blah">
<a class="truncate openwindow" target="_blank" href="/46089023" title="Blah Blah Blah">
<a class="truncate openwindow" target="_blank" href="/46089024" title="Blah Blah Blah">