如何获得标签在html页面,如果我知道什么文本标签包含。 例如:
<a ...>SearchingText</a>
如何获得标签在html页面,如果我知道什么文本标签包含。 例如:
<a ...>SearchingText</a>
当前回答
document.querySelectorAll('a').forEach(function (item) {
if (item.innerText == 'SearchingText') {
console.dir(item);
}
});
其他回答
我发现,与其他答案相比,新语法的使用略短。所以我的建议是:
const callback = element => element.innerHTML == 'My research'
const elements = Array.from(document.getElementsByTagName('a'))
// [a, a, a, ...]
const result = elements.filter(callback)
console.log(result)
// [a]
JSfiddle.net
你可以这样做,不确定这是否被推荐,但对我来说很有效。
[... document.querySelectorAll('a')].filter(el => el.textContent.includes('sometext'));
从user1106925获取filter方法,如果需要,在<=IE11中工作
你可以将展开运算符替换为:
[] .slice.call (document.querySelectorAll(“a”))
和包含调用a.textContent。匹配(“你的搜索词”)
这很简单:
[].slice.call(document.querySelectorAll("a"))
.filter(a => a.textContent.match("your search term"))
.forEach(a => console.log(a.textContent))
你可以使用jQuery:contains()选择器
var element = $( "a:contains('SearchingText')" );
const el = Array.from(document.body.querySelectorAll('a')).find(elm => elm.textContent.toLowerCase().include('search text')); const el2 = document.evaluate('//a[contains(text(text)]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; console.log(EL, EL2); <a href=“#”>text1</a> <a href=“#”>text2</a> <a href=“#”>搜索文本</a> <a href=“#”>text3</a> <a href=“#”>text4</a> <a href=“#”>text5</a>