最も安全な方法は、すべてのテキスト ノードを見つけて、それらの nodeValue を探しているものと正確に比較し、空白のみを含むものを削除することです。実際のタグ内のもの (たとえば、そこにあるはずの空白) を台無しにしないようにする必要があるため、innerHTML で直接操作を行うのは困難を伴います。テキストノードでの操作は、ブラウザのみを使用して安全を保ちます。次のように、条件に一致するすべてのテキスト ノードを見つけることができます。
$("#foo").contents().filter(function() {
if (this.nodeType == 3) {
return(this.nodeValue.replace(/\s| /g, "") == "");
}
return(false);
}).remove();
ここで動作することがわかります: http://jsfiddle.net/jfriend00/RNTbT/
参考までに、このバージョンでは、空白と
. すべての空白を削除してから
、何か残っているかどうかを確認することで機能します。そうでない場合は、空白のみのテキスト ノードであるため、削除する必要があります。