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)

$(selector) 返回数组

于 2012-06-07T21:11:23.857 回答