在JAVASCRIPT中,为什么document.getElementById不可以再全局(函数外)使用?

<scriptlanguage="javascript">varularr=document.getElementById("ulid").childNodes;//无效... <script language="javascript">
var ularr = document.getElementById("ulid").childNodes;//无效
function bodyload()
{
var pp=document.getElementById("p1");
pp.innerHTML = ularr[0].innerHTML;
pp.innerHTML += ularr[1].innerHTML;
}
</script>
<body onload="bodyload()">
<ul id="ult" onclick="ppp()"><li>A</li><li>B</li></ul>
<p id="p1"></p>
</body>

为什么var ularr在bodyload外声明就不行?在函数里就可以?
展开
 我来答
无他手熟
推荐于2018-04-05 · 超过22用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:82.2万
展开全部
在函数外写的 javascript 会在页面初始化值钱调用, 页面未初始化时 自然没有 id为 ulid 的标签,
而在 bodyload 方法中写 会在页面初始化完成后调用 ,自然会取到值..
荡清风——
2012-01-19 · 超过55用户采纳过TA的回答
知道小有建树答主
回答量:119
采纳率:0%
帮助的人:130万
展开全部
var ularr = document.getElementById("ulid").childNodes;
此处无效是因为你此时dom还没加载完成 获取不到节点信息
正是因为如此需要window.onload监听
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hrg314
2012-01-19
知道答主
回答量:2
采纳率:0%
帮助的人:3303
展开全部
是加载顺序的问题吧。。。
<html>
<body onload="bodyload()">
<ul id="ult" onclick="ppp()"><li>A</li><li>B</li></ul>
<p id="p1"></p>
</body>
<script language="javascript">
var ularr = document.getElementById("ult").childNodes;//无效
function bodyload()
{
var pp=document.getElementById("p1");
pp.innerHTML = ularr[0].innerHTML;
pp.innerHTML += ularr[1].innerHTML;
}
</script>
</html>
这样就OK了。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
garlic53
2012-01-19
知道答主
回答量:6
采纳率:0%
帮助的人:3.6万
展开全部
function jia(){ setvalue(); document.getElementById("t3").value=i+jno,程序写的不对,再改改吧 你说的不错,所以取不到值,应该是写在
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小危仔
2018-08-11
知道答主
回答量:2
采纳率:0%
帮助的人:1467
展开全部
我觉得其实不是顺序的问题,也不是还没加载的问题,而是你调用了getElementById()方法(函数),而调用其他方法(函数)得在方法(函数)中调用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式