Javascript jquery id选择器的问题

Javascript jquery id选择器的问题,javascript,jquery,html,input,Javascript,Jquery,Html,Input,我有一段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

我有一段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>     
有没有想过为什么会这样?我觉得我错过了一些简单的事情。谢谢大家!

编辑-其他一些javascript正在删除该元素,这就是它没有显示的原因。谢谢大家的帮助。

试试:

$("#id_menu_file").get(0)
$(选择器)返回数组

以重复我的第一个答案(这可能适用于以后阅读本文的其他人,尽管它“从根本上回答了这个问题”,但已被删除):

要向jQuery选择器添加上下文,只需将该上下文作为额外参数提供,例如:$('TD',aframelement)

如果所讨论的元素不在框架内(zallarak就是这样),那么问题几乎肯定是时间问题:jQuery选择在元素加载到页面之前发生。您可以通过添加以下代码(任意位置)来测试此理论:


如果这是问题所在,只需将代码包装在
$(function(){
中即可解决问题。

此处无法复制:此HTML是否在框架内(iframe或regular)?这可能会使jQuery很难找到您的元素,除非您为它提供了正确的上下文。也许您在DOM中的
id\u菜单文件
之前运行jQuery代码?请尝试将您的函数包装在
文档中。就绪(function(){
$(function(){
。作为旁注,您知道这三行代码只需要一个脚本标记,而不是三个,对吗?如果您喜欢这种样式/格式,对您来说更强大,我只是想检查一下您是否是Javascript新手。Fabricio,我想到了这一点,但OP写道“在我的控制台中,当我尝试使用jquery id选择器时”;除非他的HTML文件很大,否则几乎不可能在“onReady”出现之前在控制台中运行代码。它应该仍然显示数组的元素。为了让以后阅读的人了解完整性,像这样的问题有三个基本原因:1)元素在框架中,2)在加载元素之前运行jQuery选择器,3)在选择器运行之前,其他一些代码正在删除该元素。在本例中,是3)。
$("#id_menu_file").get(0)
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.
$(function(){
    console.log($("#id_menu_file"))
});