私は当初、YUI3 classNames(またはクラス属性全体)を削除する正規表現を考えていましたが、シリアル化されたDOM文字列からのid属性は十分なアプローチでしたが、HTML上でregexを使用することに関するさまざまな警告を受けています。ノードコレクションを効率的にコピーして扱い、シリアル化しますか?
私は、問題のDOM構造のコピーを作るというアイデアをいじる行っています。その後、
var nodeStructure = Y.one('#wrap').all('*'); // A YUI3 NodeList
// Remove unwanted classNames.. I'd need to maintain a list of them to remove :/
nodeStructure.removeClass('unwantedClassName');
をして:
// I believe this can be done on a NodeList collection...
nodeStructure.removeAttribute('id');
を私はかなりよく分かりませんとにかくノードのコレクションを「コピー」するために必要なことについて、私は実際には私のリビングマークアップに上記のことをしたくないので、保存されている - 閉じられていない、ユーザーはマークアップを変更し続けてからsもう一度ave。上記はコピーを作成しない、私は知っている。
これは効率的ですか?文字列として保存する前に、DOMへのフレームワーク追加のライブマークアップ(そして、あまりにも後の時点での他のもの)を「サニタイズする」より良い方法がありますか?それが良いアプローチであれば、安全なクリーニングのために自分のノードのコレクションをコピーするための安全な方法は何でしょうか?
ありがとうございます! D
(これは、シリアライズ全体のDOM構造をクリーンアップするために私の最初のアイデアの正規表現関連のポストです:Safe regexs to clean serialized DOM?をあなたがそれをしたい場合は、その質問には、いくつかのサンプルHTMLが含まれています)
「私はノードのコレクションをコピーする必要がありますか? - ['cloneNode'](https://developer.mozilla.org/En/DOM/Node.cloneNode)? –
申し訳ありませんが、私は頼りにしていますYUIでブラウザの痛みから私を守ってくれる基本的なウィジェットを超えたアプリケーションです。これを実現するためには、YUI3(またはYUI2in3)を引き続き使用したいので、この方法でお尋ねします。 cloneNodeは一貫していますか?私は読んで始めます...そして、NodeListの音を掃除する私のアプローチですか? – danjah
私はnodeStructure.removeAttribute( 'id')と思っています。明らかにALLのid属性を使用しても意味がありません。私は、いくつかの種類のNodeListのフィルタを実行する必要があると思う - フィルタの途中で属性を削除し、完全なNodeListを返す - ちょうど望ましくないIDの? *彼の頭を傷つける*それはあまりにも複雑に聞こえる... – danjah