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