[英]Using Javascript, what is the method to get an element, based on the text between the opening and closing tags?
我是一個初學者,搜索后找不到答案。
在我的示例中,我正在尋找
<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
您還可以在jQuery庫中使用psuedo選擇器:contains。
例子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)
更優雅。
如果可以修改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]);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.