jquery隐藏字段不可访问,直到$(document).ready()被调用 [英] jquery hidden field not accessible until $(document).ready() called
问题描述
(从另一个问题汇总)
Jquery 1.3.2测试代码,在FF3中运行:
Jquery 1.3.2 test code, run in FF3:
<input type="hidden" value="236434" id="ixd" name='ixd' />
<script>
console.log( $('#ixd').val() );
console.log( $('#ixd') );
console.log( $("input[name='ixd']") );
console.log( $("input:hidden") );
console.log( $("input[name='ixd'][type='hidden']") );
console.log( $("input[name='ixd']").val() );
$(document).ready(function() {
console.log( $('#ixd').val() );
console.log( $('#ixd') );
console.log( $("input[name='ixd']") );
console.log( $("input:hidden") );
});
</script>
控制台输出:
undefined
[]
[]
[]
[]
undefined
236434
[input#ixd 236434]
[input#ixd 236434]
[input#ixd 236434]
任何人都可以提供任何解释或文档链接隐藏字段的数据无法访问,直到$(document).ready()?
Can anybody offer any explanation or documentation links for hidden fields' data not being accessible until after $(document).ready()? It's not something I've ever experienced and it is proving troublesome.
推荐答案
与其他人写的不同,你的例子应该工作得很好因为所有主要的浏览器都允许访问执行脚本块之前的元素。我没有安装Firebug,但是用 document.writeln()
替换 console.log()
Contrary to what others have written, your example should work as all major browsers allow access to elements which precede the executing script block. I don't have Firebug installed, but when replacing console.log()
with document.writeln()
, your example works as expected.
当您创建以下HTML文档时会发生什么:
What happens when you create the following HTML document:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<input type="hidden" value="236434" id="ixd">
<pre><script type="text/javascript">
document.writeln($('#ixd').val());
document.writeln(document.getElementById('ixd').value);
</script></pre>
这篇关于jquery隐藏字段不可访问,直到$(document).ready()被调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!