1

私が持っている場合

<ul>
  <li>...</li>
  <li>...</li>
  <li>Text before nested content
    <ul>
      <li>...</li>
      <li>...</li>
    </ul>
  </li>
</ul>

Text before nested content要素に保存せずにJavaScript経由でのみアクセスするにはどうすればよいですか?

4

2 に答える 2

2

ここにも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 での実際の例を次に示します。 ノード タイプの詳細については、このリンクを参照してください。また、 、およびプロパティに関する有用な情報をここで 見つけることができます。trueconcat



nodeTypenodeNamenodeValue

于 2013-09-26T06:18:58.767 に答える
1

jsFiddle Demo

ネストされたコンテンツが見つかるまで反復してから、テキストを含む最初の 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;
 }
}
于 2013-09-24T23:28:49.483 に答える