私が持っている場合
<ul>
<li>...</li>
<li>...</li>
<li>Text before nested content
<ul>
<li>...</li>
<li>...</li>
</ul>
</li>
</ul>
Text before nested content要素に保存せずにJavaScript経由でのみアクセスするにはどうすればよいですか?
私が持っている場合
<ul>
<li>...</li>
<li>...</li>
<li>Text before nested content
<ul>
<li>...</li>
<li>...</li>
</ul>
</li>
</ul>
Text before nested content要素に保存せずにJavaScript経由でのみアクセスするにはどうすればよいですか?
ここにもjQueryソリューションがあります。要素
のclassまたはid(簡単に選択できるもの) を設定し、次のコードを使用して必要なデータを取得できます。lielement
$("<SELECTOR FOR LI>")
.clone() // clone the element
.children() // select all the children
.remove() // remove all the children
.end() // again go back to selected element
.text(); // get the text of element
詳細については、こちらの記事をお読みください。JSFiddle
でこの作業例を確認することもできます。
更新
を使用してこれを行うこともできますpure JavaScript。
子ノードのすぐiterate上で (少なくとも 1 つある場合)、ノード タイプ ( 3、それが であることを意味します) を確認し、text nodeその場合は残りのテキストです。
JSFiddle
での実際の例を次に示します。
ノード タイプの詳細については、このリンクを参照してください。また、 、およびプロパティに関する有用な情報をここで
見つけることができます。trueconcatnodeTypenodeNamenodeValue
ネストされたコンテンツが見つかるまで反復してから、テキストを含む最初の childNode を返す必要があります。
var top = document.getElementsByTagName("ul")[0];
for( var child in top ){
var c = top[child];
if( !c.hasOwnProperty("nodeName") )continue;
if( c.children.length > 0 ){
alert(c.childNodes[0].textContent);
break;
}
}