Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript选择具有特定文本内容的所有锚定标记?_Javascript_Html_Css Selectors_Selectors Api - Fatal编程技术网

如何使用Javascript选择具有特定文本内容的所有锚定标记?

如何使用Javascript选择具有特定文本内容的所有锚定标记?,javascript,html,css-selectors,selectors-api,Javascript,Html,Css Selectors,Selectors Api,我想使用document.querySelector()中的选择器来选择所有带有文本“print”的标记 我怎样才能选择相同的。我不想使用jQuery。我不必只成为querySelector,但任何其他选择器都可以。 var findElements=函数(标记、文本){ var elements=document.getElementsByTagName(标记); 发现的var=[]; 对于(var i=0;i

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


我怎样才能选择相同的。我不想使用jQuery。我不必只成为querySelector,但任何其他选择器都可以。

var findElements=函数(标记、文本){
var elements=document.getElementsByTagName(标记);
发现的var=[];
对于(var i=0;i

要选择所有锚点,您应该使用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) 
  }
}
var-anchors=document.querySelectorAll('a');
var selectedLinks=[]
对于(var i=0;i
您可以使用下面的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

您需要使用querySelector()还是不想使用它,我不明白你的意思。我的意思是可以使用其他选择器形式,如按标记名获取元素等,这是剽窃。只需用一句话来评论link@mplungjan我知道,但我已经提到了答案的来源。
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