我有这段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正在移除该元素,这就是它没有出现的原因。谢谢大家的帮助。
答案 0 :(得分:1)
要重复我的第一个答案(这可能适用于其他人稍后阅读此帖子,并且尽管事实上“从根本上回答了问题”,但仍被删除):
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(){
中即可解决问题。
答案 1 :(得分:0)
尝试:
$("#id_menu_file").get(0)
$(selector)返回数组