2015-12-27 15 views
6

$(this)でユニバーサルセレクタを使用できるかどうかを知りたいです。 例えば、私はこのコードを使用する要素とその子からすべてのインラインCSSを削除したい場合は、:

$('#element, #element *').attr('style',''); 

しかし、私はコードが何であるかを$(this)を持っている場合は?

たぶん私は試してみて:

$(this, this+'*').attr('style',''); 
+3

だ選択するために使用することができる子どもたちが さらにあなたが$(this).children('.classname')

Simillarly $(this).parent()のように特定することができます選択するのに使用することができます親要素のクラス。そこからCSSを使用して、クラスを持つ要素とそのすべての子要素にスタイリングを追加することができます。ただし、多くのDOM要素のプロパティを一度に変更する必要はありません。 –

答えて

12

コレクション、あなたはそれを後で追加することができます

$(this).find('*').addBack().attr('style',''); 

$('.element').removeClass('styled') 
ただ、私は親要素を使用して、コメントでロリーMcCrossanに同意する傾向があり、外部のスタイルは、複数の要素

.element.styled * { /* styles for all children */ } 

にスタイル属性を変更することが好ましいです

子供のスタイルを削除する

+2

うわー... 'addBack()'は私には新しいものです。 –

+1

@PraveenKumar - 以前は 'andSelf'と呼ばれていましたが、jQ 1.8では名前が変更されました。 'addBack'と' end'の両方は、jQueryが前の要素を追加するために保持している内部スタックを使うか、一歩前に戻ってより複雑なチェーンを作るのがずっと簡単です – adeneo

2

あなたはjQueryの.children()を使用することができます。

$(this).children().attr('style',''); 

しかし、これが唯一の一つ下のレベルになるので、あなたも.find()を使用することができます。

$(this).find('*').attr('style',''); 

見てくださいhttps://jsfiddle.net/joe_young/zofhwca6/

01をご覧くださいあなたは thisによって表される要素はの一部であるべき場合 this

$('#element *')と同じことをやってfind()

$(this).find('*').attr('style',''); 

またはコンテキストセレクタ

$('*', this).attr('style',''); 

を使用することができますいずれか

2

その後、hildrenとjQueryは、Methodeのが動作する見つけるremoveAttr

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

OR

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

を使用します。

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

あるいは文脈:あなたはこれを使用することができます

$(this).find(selector); 
2

$('*', this).removeAttr('style'); 
0

$(this).children()は、それが簡単な解決策は、単一の追加/削除することであろう親

関連する問題