【问题标题】:How to select all anchor tags with specific text content with Javascript? [duplicate]如何使用 Javascript 选择具有特定文本内容的所有锚标记? [复制]
【发布时间】:2018-07-03 11:39:45
【问题描述】:

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

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

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

【问题讨论】:

  • 您需要使用 querySelector() 还是不想使用它? ,我没听懂你。
  • 我的意思是可以使用其他选择器形式,例如通过标签名称获取元素等

标签: javascript html css-selectors selectors-api


【解决方案1】:

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>

【讨论】:

    【解决方案2】:

    你可以使用下面的 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

    【讨论】:

    • 那是抄袭。只需用链接发表评论
    • @mplungjan 我知道,但我已经提到了答案的来源。
    【解决方案3】:

    要选择所有锚点,您应该使用 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) 
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-01-27
      • 2015-06-11
      • 2013-02-13
      • 1970-01-01
      • 1970-01-01
      • 2021-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多