私が持っている場合
<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
(簡単に選択できるもの) を設定し、次のコードを使用して必要なデータを取得できます。li
element
$("<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
での実際の例を次に示します。
ノード タイプの詳細については、このリンクを参照してください。また、 、およびプロパティに関する有用な情報をここで
見つけることができます。true
concat
nodeType
nodeName
nodeValue
ネストされたコンテンツが見つかるまで反復してから、テキストを含む最初の 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;
}
}