我导入了我的脚本
<script src="/test.js"></script>
,内容为
var test= $(document).find('aside#bar');
var list= test.find('ul');
然后我使用以下脚本追加字符串
<script>
$(document).ready(function () {
$(list).text("testing message");
});
</script>
但Chrome控制台说Uncaught ReferenceError: list is not defined
我如何在jquery中使用变量?
更新
我发现所有脚本在该页面中都不起作用
我用
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="/test.js"></script>
<script>
$(document).ready(function () {
$(document).html("testing message");
});
</script>
但没有任何附加内容,Chrome控制台不会记录任何内容
答案 0 :(得分:2)
在test.js文件中声明一个局部变量。您必须使用window.variableName
声明它是全局的,如下所示:
window.test= $(document).find('aside#bar');
window.list= test.find('ul');
然后,您将能够从 test.js之后加载的其他Javascript文件中访问它。
答案 1 :(得分:1)
检查Chrome中是否加载了/test.js。我认为你给这个文件的URL可能是错误的
<script src="/test.js">
打开Chrome's Network panel,然后重新加载页面。在test.js
脚本尝试加载时,您是否看到红色错误消息?
如果此页面是http://localhost/test/mypage.html
,则src='/test.js'
将加载http://localhost/test.js
。因为/
在开头。因此,请检查URL路径,看看是否首先加载了脚本。
test.js
脚本只是在说var test = ..., var list = ...
。但此时,文档甚至可能没有加载!但是,当然,如果您的脚本test.js
已正确加载 - 那么它会显示test
和list
变量本身的错误。由于您在设置此变量时没有看到错误,我的第一个猜测是test.js
不正在加载。首先修复脚本加载,然后修复脚本本身:
$(document).ready(function() {
var test = ...
var list = ...
});
但是,当您尝试在其他地方使用test
或list
时,这也无效!因为它们是使用var
声明的。 var
只创建局部变量,因此它们在函数外部不可用(如果您在上面检查,我们将var test =..., var list = ...
包裹在function() { }
内,因此它们不会在该功能之外可用)。所以让他们像:
$(document).ready(function() {
window.test = ...
window.list = ...
});
您也可以通过删除var
关键字来完成同样的操作,但这有其自身的问题。请务必先阅读Javascript Variable Scopes。
对所有脚本标记使用任何类型或语言:
<script language="javascript" type="text/javascript">
$(document).ready(...)
</script>
答案 2 :(得分:0)
只需使用list.html("test message")
或list.text("test message")
$(document).ready(function () {
list.html("testing message");
});
<强> DEMO 强>
修改强>
因为在test.js
<script src="jquery.js"></script> <= First
<script src="test.js"></script> <= Second
答案 3 :(得分:0)
为什么在文档准备就绪时不定义变量?
您可以尝试使用脚本
$(
var test= $(document).find('aside#bar');
var list= test.find('ul');
);
和
<script>
$(document).ready(function () {
$(list).text("testing message");
});
</script>
但我会这样做
$(
var test= $(document).find('aside#bar');
var list= test.find('ul');
$(list).text("testing message");
);
最后......除了#bar ????
除了是一个班级?你忘记了点? 。在旁边??可能存在问题。
抱歉我的英文不好,希望得到这个帮助!再见!