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