これを試して:
var spanArray = document.getElementsByTagName('span');
for (var i=0; i<spanArray.length; i++) {
if(spanArray[i].innerHTML.toUpperCase() === 'CHICKEN')
{
alert(spanArray[i].parentNode.className);
break;
}
}
今、私はjQueryに精通していますが、ここにリンクされているフィドルで機能しているようです:http: //jsfiddle.net/FranWahl/fCzYc/2/break;
(一致後に提案を含めるように更新)
の型チェックを追加して、parentNode
それがであることを確認することもli
できますが、これで開始できます。
また、これが大きなドキュメントでどれほど効率的かはまったくわかりません。
編集
いくつかのコメントを読んだ後、上記のコードを更新して、ajax333221によって提案されたブレークを含めました。
デニスは、を呼び出す方がよいと述べgetElementByTagName
ましたul
。OPにタグがあるかどうかわからないので、ここに別のコードとして追加しましたli
。ul
ul
それぞれに対するコードクエリ(ここではul
jsFiddle )
var ulArray = document.getElementsByTagName('ul');
var parentFound = false;
for (var i = 0; i < ulArray.length; i++) {
var spanArray = ulArray[i].getElementsByTagName('span');
for (var i = 0; i < spanArray.length; i++) {
if (spanArray[i].innerHTML.toUpperCase() === 'CHICKEN') {
alert(spanArray[i].parentNode.className);
parentFound = true;
break;
}
}
if(parentFound)
{
break;
}
}