2011-09-16 18 views
2
$(myelem).removeAttr('attributeName'); 

提案回避策があるIE 7で動作しません:削除属性

$(myelem).prop("attributeName", false); 

または

$(myelem).prop("attributeName", null); 

または

$(myelem).attr("attributeName", ''); 

これらが全てですレンダリングやビヘイビアーを変更したい場合は問題ありません。私が必要とするのは、実際にソースから属性を削除することです。例えば。

<p align="center"> 上記 <p> 例となるべき配置を変更することになる <p align=""> これを行うことに焦点を当てますが、属性がまだそこにあるされています。

誰でも今の方法ですか。本当に属性を削除していますか?私はjQueryの1.6.1に

+0

、「表示ソース」に関係なく、あなたはそれを操作どのくらいあなたに元々レンダリングされたマークアップを示していません。 jQueryはソースマークアップではなく、DOMを操作します。 Firebug/Developer Toolbarを使用して操作されたDOMを調べ、jQueryの実際の動作を確認します。それで、ここであなたの目標は何ですか?なぜあなたは属性を完全に削除する必要がありますか? –

+0

XYの問題。属性を完全に削除する必要がある理由を説明し、それを空の文字列に設定することが望ましくない理由を説明した方が良いでしょう。 – Blazemonger

+0

@Cory、はい私はそれを認識しています。私が編集しているHTMLは、WYSIWIGエディタの内容です。コンテンツは、特定の属性を持たないと予想されるサーバーにアップロードされます。 – Tomas

答えて

2

属性せずに、新しいpタグで、完全にpタグを交換してみてください:一部のブラウザで

$(myelem).replaceWith("<p>"+$(myelem).html()+"</p>"); 
+0

はい、私はそれを考えました。その問題は、パフォーマンス、大きな文書、そしてもっと重要なことです。それは私が保持したい属性を保持しません。 – Tomas

+0

あなたの答えが私を助けないにもかかわらず、それは質問への答えなので、私はそれを受け入れるように設定します。ありがとう! – Tomas

2
myelem.removeAttribute('attribute name'); 

を使用してい

これは私の知る限り唯一のIE7は、アール・イベント・ハンドラを削除することができない属性知っているように、動作するはずです。

removeAttributeとの互換性を確認してください。

+1

+1はい、これはうまくいくはずです。これを行い、要素からその属性を取得しようとします。 Betchaあなたはそれを見つけることはありません。 – hunter

+0

はい、動作しますが、すべての属性(例: contentEditable、datafld。これらの属性はHTMLの単語に由来し、それらを削除する必要があります。 – Tomas

関連する問題