我是初学者,搜索后找不到答案。
在我的例子中,我正在寻找一个
<a href="bla" onclick="dah">some text here</a>
我想找到这个特定的元素,所以我可以用它做一些事情。
编辑:我唯一知道该元素的独特之处是文本“这里有一些文本”,这就是为什么我想根据它找到它的原因。
我是初学者,搜索后找不到答案。
在我的例子中,我正在寻找一个
<a href="bla" onclick="dah">some text here</a>
我想找到这个特定的元素,所以我可以用它做一些事情。
编辑:我唯一知道该元素的独特之处是文本“这里有一些文本”,这就是为什么我想根据它找到它的原因。
将 id 放在元素上:
<a href="bla" onclick="dah" id='myEl'>some text here</a>
来自 javascript:
var myEl = document.getElementById('myEl') // gives the element
您还可以将伪选择器 :contains 与jQuery 库一起使用。
示例 2
$('div:contains("test")').css('background-color', 'red');
示例 2
<script>
$("div:contains('John')").css("text-decoration", "underline");
</script>
如果您知道该元素是一个链接,您可以先调用getElementsByTagName
[docs]来缩小搜索范围:
var elements = document.getElementsByTagName('a');
然后你必须遍历元素并测试哪个包含你正在寻找的下一个:
var element = null;
for(var i = 0, l = elements.length; i < l; i++) {
if(elements[i].innerHTML === 'some text here') {
// found the element
element = elements[i];
break;
}
}
if(element) {
// found the element, lets do something awesome with it
}
有多种方法可以获取元素的内容,使用Node#innerText
(IE) 或Node#textContent
(W3C) 是另一种选择。在比较之前,您可能必须先修剪文本。
如果 HTML 如您的帖子中所示,
if(elements[i].firstChild || elements[i].firstChild.nodeValue)
更加优雅。
有关 DOM的MDN 文档可能会有所帮助。
如果您可以修改 HTML,那么添加 ID 并使用getElementById
将是更好的选择。
试试这个
function getit()
{
var elems = document.getElementsByTagName('a');
for(var i=0; i<elems.length; i++)
{
var text = elems[i].childNodes[0] != null ? elems[i].childNodes[0].nodeValue : '';
if(text == "some text here")
doSomethingWith(elems[i]);
}
}