2009-06-05 4 views
2

親divに含まれる内部divにスタイルを適用しようとしています。親divには他のdivも含まれていますが、色を[0] divに適用したいだけです。JQuery内部DIVにCSSを適用する

$("#parentDiv div")[0].css('background-color', 'red'); 

何らかの理由で「css関数が定義されていません」と表示されます。これは動作するはず

+0

あなたはそれを確認するために、0番目の要素はの種類である検査みましたあなたが期待したオブジェクト? –

+0

こんにちは はい[0]要素はDIV要素です。私も次のようにしています: $( "#parentDiv")。dialog(); $( "#parentDiv")。ダイアログ( 'option'、 'title'、 'Parent Div'); $( "#parentDiv div")[0] .css( 'background-color'、 'red'); – azamsharp

答えて

2
$("#parentDiv div")[0] // returns a regular DOM object, NOT jquery extended 

あなたは試してみてください:

$("#parentDiv div").eq(0).css('background-color', 'red'); 

が、:firstセレクタが動作するはずです。

まだ動作しない場合は、メソッドが実行された後にHTMLを確認して、最初の要素が本当にあなたが思っているものかどうかを確認してください。

+0

驚くばかり!ありがとう! – azamsharp

+0

このメソッドは、jqueryオブジェクトを別のjqueryオブジェクトに変換するため、メモリーを2倍使用します。ちょうどあなたが知っている...実際には、このページの他のすべての提案は、より効率的です..それにもかかわらず、それは、どのように動作します... – KyleFarris

+0

ありがとうKyleFarris!このページに掲載されている他のソリューションをチェックします! – azamsharp

1

$("#parentDiv div:first").css(background-color, 'red'); 
+0

それでもうまくいきませんでした!何が間違っているかわからない!ありがとう! – azamsharp

+0

私が提供したコードは、idがparentDivの要素の中に最初のdivタグがあるはずです。あなたが別の要素を見つけることを意図していたなら、それをもっと深く説明して、私の答えを修正することができます。それ以外の場合は、HTMLマークアップが正しいことを確認してください。 –

0

あなたは、「最初の子」セレクタを使用することはできませんか?

例: $( "#parentDiv div:first-child")。css( 'background-color'、 'red');

7

これを行うにはjQueryの方法は次のとおりです。[0]よう

$('#parentDiv div').eq(0).css({backgroundColor: 'red'}); 

.eq(0)が、あなたのjQueryオブジェクトを提供します。 JQueryのeq() docsはそのほとんどを説明しています(なぜ「eq」なのか、「at」のようなより賢明なものを除いて)。

+0

が合意した、これは私が提案した方法よりも優れている。 +1 –

+0

良い答え。私は.eq()を覚えようとしていましたが、私の頭の中で思いつくことができるのは.get()です。これは[0]と同じ制限があると思います。 – Nosredna

0

時々、私は他のCSS構文を使用してより良い運があります。 (あなたが複数のスタイルを追加しようとしている場合はそれも良いでしょう)あなたはこれを試すことができます:あなたが最初以外のいくつかのdivにスタイル(複数可)を添付する必要がある場合

$('#parentDiv div:first').css({backgroundColor:'red'}); 

あなたはまた、(nthChildやEQセレクターを試すことができますただnthChildは覚えONEベース、ではない)... ZEROベース:私はこのようなエラーに遭遇し、本当に間違って起こっていたかを把握することができませんでしたしました

$('#parentDiv div:nthChild(1)').css({backgroundColor:'red'}); 
// or 
$('#parentDiv div:eq(0)').css({backgroundColor:'red'}); 
+0

eq()はゼロベースですか? – Nosredna

+0

はい、eqはセレクタの一部としてゼロベースです。 –

+0

ああ、撃つ...私の悪い、私は持ち去られた。実際、nthChildは1ベースです。私は "(ちょうどnthChildがONEベースであることを覚えていて...)"と書いていました。 : - \それを修正します。 – KyleFarris

0

。 DOMオブジェクトとjQueryオブジェクトを返す関数と関係があります。最後に

私が働いており、このような何かをしましたが、私はそれはそれを行うための最善の方法だか分からない:

var divID = $("#parentDiv").children("div").attr("id"); 
$("#"+divID).css('background-color', 'red'); 
関連する問題