为什么“$ .each”似乎不起作用?

时间:2011-06-16 18:12:50

标签: javascript jquery html flot

当我在同一个HTML文档中有以下内容时,似乎可以工作:

<script type="text/javascript">
datasets[0] = {
    "buildnames": {
        label: "buildnames",
        data: ["test2-a1", "test2-a2", "test2-a3",  "test2-a4","test2-a5", "test2-a6"]
    }
};

function doSomething() {
    var i = 0;
    for (var j = 0; j < datasets.length; j++){
        $.each(datasets[j], function(key, val) {
            val.color = i;
            ++i;
        });

        var choiceContainer = $("#choices");
        //var testkey = new RegExp("cover");
        $.each(datasets[j], function(key, val) {
            if (key.indexOf("failed") > -1 || key.indexOf("cover") > -1) {
                choiceContainer.append('<br /><input type="checkbox" name="' + key +
                '" checked="checked" id="id' + key + '">' +
                '<label for="id' + key + '">'
                + val.label + '</label>');
            }
        });
    }
}
</script>

但是当我将它导出到一个单独的JavaScript文件然后导入它并像这样调用函数

<script type="text/javascript" language="Javascript" src="root/include/graph_1.js"></script>

<a href="javascript:doSomething()">doSomething</a>

我收到以下错误:“$”未定义,并指向“$.each(..” 那么为什么我不能使用这个功能呢?我将HTML文档中的所有JavaScript代码“导出”到另一个单独的JavaScript文件中?

** * ** * ** * 的** 修改 * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * *

我尝试了以下提示并更改了订单

@idbentley我做了你说的话,改变了那些2的顺序,所以它是

    <script language="javascript" type="text/javascript" src="root/include/jquery.js"></script>
    <script language="javascript" type="text/javascript" src="root/include/jquery.flot.js"></script>
    <script language="javascript" type="text/javascript" src="root/include/jquery.flot.crosshair.js"></script>
    <script type="text/javascript" language="Javascript" src="root/include/graph_1.js"></script>

但是现在我又得到了另一个错误“抛出异常而没有被抓住”任何人都知道这个错误意味着什么?

2 个答案:

答案 0 :(得分:1)

很难说明你给了我们什么,但听起来你没有包含jQuery,或者你在脚本之后加载jQuery。

答案 1 :(得分:0)

在包含任何自己的脚本之前,需要包含JQuery库。