我是否可以安全地从document.ready()
块内移出这段代码。
var $userInfoNode = $('#userOptions');
CURR_USER_ID = $userInfoNode.attr('data-userId');
CURR_USER_NAME = $userInfoNode.text();
此代码放在外部js文件中,该文件是从html page&的head
部分加载的。选择放置在html body
中的html元素,从中提取数据。
答案 0 :(得分:3)
简答:不,因为JavaScript文件放在标题中。
执行代码时,DOM(文档对象模型)需要包含<div id="userOptions">
。
您可以将代码放在 div
之后,例如在结束</body>
之前。
或者您将代码放在$(document).ready()
函数中,该函数在DOM完全加载后立即触发。
答案 1 :(得分:2)
- out of document.ready()block。
- 从头部加载的外部js文件
- 选择放置在html正文
中的html元素
=&GT;不。你可以尝试一下,发现$userInfoNode
为空。
答案 2 :(得分:0)
是。
您还需要确保您要引用的html元素出现在您的javascript之前。
总之把这个
var $userInfoNode = $('#userOptions');
CURR_USER_ID = $userInfoNode.attr('data-userId');
CURR_USER_NAME = $userInfoNode.text();
在html页面的末尾......
答案 3 :(得分:0)
如果您必须/想要将其保存在外部文件中,您可以在关闭正文标记之前放置引用它的脚本元素。起初看起来有点奇怪,但它是有效的。