2011-03-23 19 views
0

私はこのフォームを持っている:なぜjQuery関数がnullを返すのですか?

<form action="javascript:;" class="iceFrm" enctype="application/x-www-form-urlencoded" id="frmMainMenu" method="post" onsubmit="return false;"> 
..... 
</form> 

私は、なぜこのスクリプトを理解していない:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#frmMainMenu").$("#menuPopupAP").$("#menuItem0").$("#out").css('padding','0 0 0 29px'); 
}); 
</script> 

は言う:

$("#frmMainMenu")はFirebugの中

nullです。

UPDATE:

<span id="frmMainMenu:menuPopupAP:menuItem0:out" class="iceOutTxt iceMnuItmLabel graMenuPopupMenuItemLabel">My Applications</span> 

アップデート2: これは、私が上のパディングを変更したい(上記のフォームから)html要素である

私はこのことを言及するのを忘れましたスパンはメニュー内にあるので、基本的には隠れていて、divでホバリングしているときだけ表示されます...表示されていなくてもjQueryが見つけますか?

あなたはその理由を知っていますか?

+0

フォーム全体を投稿できますか? – Belinda

+0

'$(...)'の結果には別のプロパティ '$(...) 'がありません。 – pimvdb

+1

$( "#menuPopupAP")$( "#menuItem0")。$( "#out") 'が正しくありません。あなたは正確に何をしようとしていますか? –

答えて

0

$('#frmMainMenu:menuPopupAP:menuItem0:out').css('padding','0 0 0 29px'); 

$('span[id="frmMainMenu:menuPopupAP:menuItem0:out"]').css('padding','0 0 0 29px'); 

IDに含めることができます。

+0

まあ、それはまだ私にnullを与える非常に奇妙な...上記のIDはFireboguから基本的にそれはすべての親コンポーネントの構成idだから注意してください... –

+0

@クリスチャン: "作ったid"はどういう意味ですか? –

+0

私はそれがすべての親のIDを取り、結果を次のように表示することを意味します。 –

1

更新あなたの質問を更新した後:

$('#frmMainMenu\3AmenuPopupAP\3AmenuItem0\3Aout').css('padding','0 0 0 29px'); 

あなたのセレクタに:を使用するカントができますが、16進数を使用することができます - \3A

this SO thread上の他のいくつかの回避策があります。


はあなたのfrmMainMenuの子を検索しようとしていますか?代わりにこれを試してみてください:

$(document).ready(function() { 
      $("#frmMainMenu").find("#menuPopupAP") 
          .find("#menuItem0") 
          .find("#out") 
          .css('padding','0 0 0 29px'); 
}); 
+0

jQueryは ':(frmMainMenu:menuPopupAP:menuItem0:out ')' 'セレクタとして。 –

+0

@Rocket - はい、私はそれを実現しました。ありがとう。私の答えを更新してください。 –

0

これはそうではありません。それはヌルである子供の1人です。あなたはこの

<script type="text/javascript"> 
$(document).ready(function() { 
      $("#frmMainMenu #menuPopupAP #menuItem0 #out").css('padding','0 0 0 29px'); 
     }); 
     </script> 
0

きっとあなたは#を毎回使用することを意味するものではありません(そうでない場合は、あなただけの#out使用することができますが、それは

のようなものでなければなりませんように聞こえるような何かにあなたのスクリプトを変更する必要があります$( "#frmMainMenu .menuPopupAP.menuItem0 .out").css(...

2

なぜあなたはnullエラーを受け取っているのか正確にはわかりませんが、そのスタイルを4つの構文は次のようになります。

$("#frmMainMenu, #menuPopupAP, #menuItem0, #out").css('padding','0 0 0 29px'); 

これらの4つの要素は、階層内の連続するノードです(つまり、マークアップサンプルが不十分であるとはわかりません)。 #out#menuItemの子で、#menuPopupApの子は#frmMainMnenuの子です)、それらの間のカンマを削除します。

EDITコロンはIDですか?それはjQueryセレクタに問題を引き起こします。代わりにアンダースコアを使用してみてください。

+0

ID *はコロンを含むことができますが、有効ですが、 ':'はセレクタとして読み込まれるため、jQueryはそのようなコロンでIDを選択できません。代わりに '[id =" value "]'を実行する必要があります。 –

0

あなたは何を達成する必要があるのですか?あなたのセレクターからの 、あなたはあなたのDOMと対話するためのハードセレクターアプローチを取っていると思います。それがあることを認識していませんので、jQueryのセレクタに:は、セレクタとして使用することができますので、あなたは、[id="value"]構文を使用する必要が

関連する問題