簡體   English   中英

使用Javascript,根據開始標記和結束標記之間的文本,獲取元素的方法是什么?

[英]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');​

http://jsfiddle.net/9z5du/

例子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)

更優雅。

有關DOMMDN文檔可能會有所幫助。

如果可以修改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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM