2

私はこのコードを持っています

    $(textObject).children().each(function() {
        $(this).removeAttr('style');
        console.log('removing style from first level element: '+this);

    });

しかし、ネストされたすべての要素にも影響を与えたいのですが、これは最初のレベルの子にのみ影響します。私も試してみました

$(this).children().removeAttr('style');

これは機能しません。

私も試してみました

$(this).children().css('font-size','');

どちらも機能しません。

やりたいことが明確になったのではないでしょうか。

4

7 に答える 7

9

試す

$(this).find('*').removeAttr('style');

デモはこちら

于 2013-10-09T09:29:51.337 に答える
2

試す

$(this).find('[style]').addBack().removeAttr('style');

デモ:フィドル

于 2013-10-09T09:27:41.373 に答える
0

これは、アスタリスクを使用して純粋な CSS で行うことができます。

どの要素textObjectが参照されているかを指定していませんが、議論のために、それが id の div であるとしましょうelement

#element * { font-size: inherit; }

または、このスタイルを強制的に子要素に既に設定されているものをオーバーライドするには、次を使用します。!important

#element * { font-size: inherit !important; }
于 2013-10-09T09:27:48.250 に答える
0

以下を使用して、すべての子にアクセスできます。

$(textObject).find('*').each(function() {
        $(this).removeAttr('style');
        console.log('removing style from first level element: '+this);
});

ログに記録する必要がない場合は、次のようにします。

$(textObject).find('*').removeAttr('style');
于 2013-10-09T09:30:11.230 に答える
0

クラス名を使用して子要素のスタイルを設定し、jQuery でクラス名を切り替えてスタイルを削除する方がはるかに簡単ではないでしょうか?

このマークアップ:

<div class="parent fancy-styles">
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
</div>

この CSS では:

.fancy-styles .child {
  /* styling */
}

そしてトリガーします:

$(".parent").toggleClass("fancy-styles")
于 2013-10-09T09:47:19.253 に答える
0

jQuery の find() メソッドで * を使用します。children()は 1 つのレベルにループし、find()はネストされたレベルにループします。だからあなたのコードは

$(this).find('*').removeAttr('style');

作業コードはこちら

于 2013-10-09T09:31:18.813 に答える