0

ノード A の innerHTML を取得したいが、ノード A の子孫であるテキスト ノードであるノード B を除外したいとします。ノード B への参照が変数に格納されており、削除したくないとします。ページからのノード B。また、ノード A の他のコンテンツも事前に把握していないため、正規表現を使用してテキスト ノードからテキストを消去すると、意図しない結果が生じる可能性があります (同じテキストが他の場所に存在する場合)。ページを変更せずにこれを行う方法はありますか?

4

3 に答える 3

1

ノードのクローンを作成し、そこからAノードを削除しBて、その innerHTML を取得できます。

var A_clone = A.cloneNode();
A_clone.removeChild(B);  
/* B has to be evaluated from the cloned node or - if previously
 * evaluated - it will be a reference of the original A node 
 */

console.log(A_clone.innerHTML);
于 2012-08-31T08:31:57.670 に答える
0

高速ではありませんが、次のことができます。

  • 外側のノードを複製する
  • クローンの内部ノードに降りて (ある種のルックアップ関数を使用して)、それを削除します。
  • 複製されたノードの innerHTML を保存します
  • 複製されたノードを破棄する
  • 格納された innerHTML を返す
于 2012-08-31T08:31:37.183 に答える
0

また、 XMLSerializerオブジェクトを使用して、a と b をシリアル化し、最後に a の b の一致を "" に置き換えることもできます。

于 2012-08-31T09:23:31.387 に答える