1

我导入了我的脚本

<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>

但铬控制台说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 控制台不记录任何内容

4

4 回答 4

2

In your test.js file you declare a local variable. You have to declare it global using window.variableName like bellow:

window.test= $(document).find('aside#bar');
window.list= test.find('ul');

Then you will be able to access it from other Javascript files that were loaded after test.js.

于 2013-05-26T11:46:07.703 回答
1
  1. 检查 /test.js 是否正在加载到 Chrome 中。我认为您提供给此文件的 URL 可能是错误的

    <script src="/test.js">
    

    打开Chrome 的网络面板,然后重新加载页面。test.js当脚本尝试加载时,您是否看到红色错误消息?

    如果这个页面是,比如说http://localhost/test/mypage.html,,那么src='/test.js'将加载http://localhost/test.js。因为/一开始。所以检查 URL 路径,看看脚本是否首先被加载。

  2. test.js脚本只是说var test = ..., var list = ...。但是此时,文档甚至可能还没有加载!但是,当然,如果您的脚本test.js正确加载 - 那么它本身就会显示testandlist变量的错误。由于设置此变量时您没有看到错误,因此我的第一个猜测是test.js没有加载。先修复脚本加载,再修复脚本本身:

    $(document).ready(function() {
        var test = ...
        var list = ...
    });
    
  3. 但是同样,当您尝试使用或其他地方时,这也不起作用!因为它们是使用声明的。仅创建局部变量,因此它们在函数外部不可用(如果您在上面检查,我们将内部包装 a ,因此它们在该函数外部不可用)。所以让他们喜欢:testlistvarvarvar test =..., var list = ...function() { }

    $(document).ready(function() {
        window.test = ...
        window.list = ...
    });
    

    您也可以通过删除var关键字来完成相同的操作,但这有其自身的问题。确保您首先阅读了Javascript 变量范围

  4. 对所有脚本标签使用类型或语言:

    <script language="javascript" type="text/javascript">
      $(document).ready(...)
    </script>
    
于 2013-05-26T11:51:10.000 回答
0

只需使用list.html("test message")list.text("test message")

$(document).ready(function () {
  list.html("testing message");
});

演示

编辑:

并且因为使用了 jquery 函数test.js

<script src="jquery.js"></script>  <= First
<script src="test.js"></script> <= Second
于 2013-05-26T11:09:02.953 回答
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 ????

旁边是一堂课??你忘了点??。在旁边??问题可能就在那里。

抱歉我的英语不好,希望对您有所帮助!再见!

于 2013-05-26T11:09:03.593 回答