web-dev-qa-db-ja.com

HTMLなし、テキストのみのinnerHTML

本文に必要な情報を自動的に入力する電子メールリンクを作成しました。しかし、.innerHTMLを実行すると、私が交渉したよりも少し多くのものが得られます。

「2012年3月:12-16」が欲しい

私が得るもの<B>March, 2012</B>: <FONT color=blue>12</FONT> - <FONT color=blue>16</FONT>

HTMLタグなしでinnerHTMLを取得する方法はありますか?

.value = undefined
.text = undefined
23
cphilpot

古いIE以外のすべてに_.textContent_が必要で、IE(<9)に_.innerText_が必要です。

だから、試してみてください:

string = (node.textContent===undefined) ? node.innerText : node.textContent;

編集:または、undefinedは扱いにくいので、GGGのよりクリーンなstring = (node.innerText || node.textContent)を使用してください。

41
apsillers

標準をサポートするブラウザでは、textContentの代わりにinnerHTMLを使用できます。それ以外の場合は、次のノードをループして連結するか、このアプローチを抽象化するjQueryなどのライブラリを使用できます。

5
ZER0

すでにjQueryを使用している場合は、.text()を使用できます。

http://jsfiddle.net/vkgYR/

ただし、それを使用していない場合は、.text()メソッドのためだけにすべてのjQueryをロードするのはばかげているので、他のコメントを付けてください。

3
slowBear