如何使用Javascript选择具有特定文本内容的所有锚标签? [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Javascript选择具有特定文本内容的所有锚标签? [重复]相关的知识,希望对你有一定的参考价值。

我想使用document.querySelector()中的选择器来选择所有带有“print”文本的标签。

<a href="https://www.google.co.in">print</a>

我该如何选择相同的。我不想使用jQuery。我不必只是querySelector,但任何其他选择器都可以。

答案

var findElements = function(tag, text) {
  var elements = document.getElementsByTagName(tag);
  var found = [];
  for (var i = 0; i < elements.length; i++) {
    if (elements[i].innerhtml === text) {
      found.push(elements[i]);
    }
  }
  
  return found;
}

console.log(findElements('a', 'print'));
<a href="https://www.google.co.in">print</a>
<a href="https://www.google.co.in">skip</a>
另一答案

你可以使用下面的javascript函数,

function contains(selector, text) {
   var elements = document.querySelectorAll(selector);
   return Array.prototype.filter.call(elements, function(element){
     return RegExp(text).test(element.textContent);
   });
}

并致电使用

var results = contains('a', 'print'); // find "a" that contain "print"
var results = contains('a', /^print/); // find "a" that start with "print"
var results = contains('a', /print$/i); // find "a" that end with "print", case-insensitive

Source

另一答案

要选择所有锚点,您应该使用document.querySelectorAll()

然后只需循环遍历节点列表并检查内部html是否为'print'

然后将其推送到阵列。此数组包含所有带有“print”文本的锚链接

var anchors = document.querySelectorAll('a');
var selectedLinks = []

for (var i = 0; i < anchors.length; i++) {
  var link = anchors[i];

  if (link.innerHTML === 'print') {
    selectedLinks.push(link) 
  }
}

以上是关于如何使用Javascript选择具有特定文本内容的所有锚标签? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jquery 选择具有或不具有特定“alt”属性的图像

如何使用javascript从网页中获取点击或选择的文本? [复制]

如何在 Visual Studio Code 中搜索具有特定扩展名且包含特定文本的文件

如何构建具有特定内容的 Nuxt

具有特定属性名称和值的 Scrapy .css 选择元素

特定文本的 CSS 选择器 [重复]