• ベストアンサー

テキストノードを非表示にできません

いつもお世話になります。 <div id="ida"> <div>aaaaaaaaaaaa</div> </div> のとき、 elemDiv=document.getElementById("ida"); var nodes=elemDiv.childNodes; for(i=0;i<nodes.length;i++) {   var node=nodes[i];   if(node.nodeName.toLowerCase()=='div'){     node.style.display='none'   } } とすれば、<div>aaaaaaaaaaaa</div> は、表示されなくなります。 ここで、 <div id="ida"> aaaaaaaaaaaa </div> として、つまり文字列を<div>で囲まないようにして for(i=0;i<nodes.length;i++) {   var node=nodes[i];   if(node.nodeName=='#text'){     node.style.display='none'   } } とすると、「aaaaaaaaaa」が非表示となりません。 テキストノード自体を非表示にすることはできないのでしょうか。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

できない。 DOM 2 Traversal and Range http://www.w3.org/TR/DOM-Level-2-Traversal-Range/idl-definitions.html のsurroundContentsでも何でもいいから、要素に突っ込んでから、その要素にスタイルを当てるしかない

rqg2010
質問者

お礼

himajin100000さん、早速レスありがとうございます。 そうですか。 もう一つ要素を作成する方法で考えます。 どうもありがとうございました。

その他の回答 (1)

  • tochansa
  • ベストアンサー率76% (23/30)
回答No.2

↓状態でaaa...を非表示にしたいなら <div id="ida"> aaaaaaaaaaaa </div> elemDiv=document.getElementById("ida"); elemDiv.style.display='none' で良いんじゃないの?余計なDiv消したいんだけどーみたいに受け取ったんですが。。。 テキストノード自体については先の回答者さんの仰る通りできません

rqg2010
質問者

お礼

tochansaさん、早速レスありがとうございます。 >余計なDiv消したいんだけどーみたいに受け取ったんですが。。。 結局は、そういうことになるのかな。 よく考えてみます。 どうもありがとうございました。

関連するQ&A

専門家に質問してみよう