-1
<body>
    <div id="li-container">
        <ul>
            <li class="hot">item1</li>
            <li id="secLi" class="cool">item2</li>
            <li class="cool">item3</li>
            <li class="cool">item4</li>
        </ul>
    </div>

<script language="javascript" type="text/javascript">
var secLi = document.getElementById("secLi");
var sib = secLi.nextSibling;
document.write(sib);

//OR //OR  //OR //OR  //OR //OR  //OR //OR  

var secLi = document.getElementById("secLi");
var sib = secLi.nextSibling;
document.write((sib).textContent);

</script>
</body>

nextSibling プロパティを使用して 3 番目の list(li) アイテムの textnode を取得し、ドキュメントに書き込みたいと思います。「li.textContent」を使用してアクセスできることはわかっていますが、この方法が必要です。

いいえ、「nextElementSibling」を探しているわけではありません。「nextSibling」プロパティを使用して「secondli」の「textNode」にアクセスしたいのですが、それは、「3 番目の li」に到達したい場合は「nextSibling」を使用する必要があるためです。 (1)最初の「nextSibling」は「2番目のリ」の「text-node」用、(2)2番目の「nextSibling」は「3番目のリ」用です。一度「next-sibling」を使用して「2nd li」のテキストノードを取得できません。

text-fixer.com を使用して、他の空白や改行を削除しても機能しませんでした。

4

2 に答える 2

3

あなたはおそらく探していnextElementSiblingますか?

var secLi = document.getElementById('secLi');
secLi.nextSibling; // Is a text node.
secLi.nextElementSibling; // Is the <li> you're looking for, so..
secLi.nextElementSibling.textContent; // Gives you "item3"

アップデート

親が言っていることnextElementSiblingを見るのではなく、なぜあなたが欲しいのかをよりよく理解するには:nextSibling<ul>childNodes

secLi.parentElement.childNodes;
// [#text, <li>, #text, <li>, #text, <li>, #text, <li>, #text]

nextSiblingリスト項目間の単なる空のテキストであるため、必要ありません。次の要素(リスト項目) が必要です。

https://developer.mozilla.org/en-US/docs/Web/API/NonDocumentTypeChildNode/nextElementSiblingを参照してください

于 2015-04-04T16:44:23.630 に答える
0

要素の は要素textnodeのです。したがって、コードは var sib = secLi.firstChild.textContent; になります。document.write(同胞);lichild2nd li

@ブライアンヴォーン

于 2015-04-04T17:48:36.563 に答える