子要素を変更せずに要素のテキストを変更するにはどうすればいいですか? 質問する

子要素を変更せずに要素のテキストを変更するにはどうすればいいですか? 質問する

要素のテキストを動的に更新したいと思います。

<div>
   **text to change**
   <someChild>
       text that should not change
   </someChild>
   <someChild>
       text that should not change
   </someChild>
</div>

私は jQuery を初めて使うので、このタスクは私にとってかなり難しいようです。使用する関数/セレクターを教えていただけませんか?

可能であれば、変更する必要があるテキスト用の新しいコンテナーを追加せずに実行したいと思います。

ベストアンサー1

マークはjQueryを使ったより良い解決策を見つけましたただし、通常の JavaScript でもこれを行うことができる可能性があります。

Javascript では、このchildNodesプロパティはテキスト ノードを含む要素のすべての子ノードを提供します。

したがって、変更したいテキストが常に要素の最初の部分になることがわかっている場合は、たとえば次の HTML が与えられます。

<div id="your_div">
   **text to change**
   <p>
       text that should not change
   </p>
   <p>
       text that should not change
   </p>
</div>

次のようにすることができます:

var your_div = document.getElementById('your_div');

var text_to_change = your_div.childNodes[0];

text_to_change.nodeValue = 'new text';

もちろん、jQuery を使用して<div>最初に を選択することもできます (つまりvar your_div = $('your_div').get(0);)。

おすすめ記事