私は初心者で、検索しても答えが見つかりませんでした。
私の例では、私は
<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
要素がリンクであることがわかっている場合は、まず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
することをお勧めします。
jQuery ライブラリで疑似セレクター :contains を使用することもできます。
例 2
$('div:contains("test")').css('background-color', 'red');
例 2
<script>
$("div:contains('John')").css("text-decoration", "underline");
</script>
これを試して
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]);
}
}