1

次の HTML スニペットがあります。

<div class="clearfix" id="menu-file-div">
  <label id="menu-file-label" for="id_menu_file">From File</label>
    <div class="input">
      <div id="file-upload">

        <input type="hidden" name="menu_file" id="id_menu_file" />

          <script type="text/javascript">var field_id = "id_menu_file";</script>
          <script type="text/javascript">var append_to_element_id = "menu-upload";</script>
          <script type="text/javascript">var loader_element_id = "newmenu-modal";</script>
        <noscript>
          <p>Please enable JavaScipt to upload a file.</p>
        </noscript>
      </div>
    </div>                
</div>     

私のコンソールでは、jquery id セレクターを使用しようとすると、入力要素を返すことができません。

> $("#id_menu_file")
[]

なぜそうなのかについて何か考えはありますか?シンプルなものが欠けているような気がします。ありがとうございました!

編集- 他の JavaScript が要素を削除していたため、要素が表示されません。ご協力ありがとうございます。

4

2 に答える 2

2

私の最初の答えを繰り返すには(これは後でこの投稿を読んでいる他の人に当てはまる可能性があり、「基本的に質問に答えた」という事実にもかかわらず削除されました):

Is this HTML inside of a frame (iframe or regular)? That could make it difficult for jQuery to find your element, unless you give it the right context.

jQueryセレクターにコンテキストを追加するには、そのコンテキストを追加の引数として指定するだけです。次に例を示します。$('TD'、aFrameElement);

問題の要素がフレーム内にない場合(zallarakの場合)、問題はほぼ確実にタイミングの問題です。要素がページに読み込まれる前にjQueryの選択が行われています。次のコードを(どこにでも)追加することで、この理論をテストできます。

$(function(){
    console.log($("#id_menu_file"))
});

$(function(){それが問題である場合は、問題を修正するためにコードをラップするだけです。

于 2012-06-07T21:39:49.327 に答える
0

試す :

$("#id_menu_file").get(0)

$(セレクター)は配列を返します

于 2012-06-07T21:11:23.857 に答える