0

我试图找到阻止页面显示的代码,我认为这个遗留功能可能是罪魁祸首:

function SetTabOrder() {
    $.each([
            "#BeginDate",
            "#BeginTime",
            "#EndDate",
            "#EndTime",
            "#InputSite-input",
            "#cmdAddSite",
            "#InputDept-input",
            "#cmdAddDept",
            "#IncludeDepts",
            "#ExcludeDepts",
            "#UPCBeginsWith"], 
        function(i, n) {
            $(n).prop("taborder", "y");
        }
}

“每个”位在我看来是错误的,或者至少很奇怪,我在右尖括号中附加了一个右括号,如下所示:

"#UPCBeginsWith"]), 

...但是 jsFiddle/JSHint 告诉我,“函数声明中缺少名称”

如果我删除那个括号,它会给我两个错误,一个在第一行:

Unmatched '{'

...最后一行:

"Missing semicolon."

但是,在末尾添加分号不会改变任何内容。

4

4 回答 4

4
function SetTabOrder() {
    $.each(["#BeginDate",
            "#BeginTime",
            "#EndDate",
            "#EndTime",
            "#InputSite-input",
            "#cmdAddSite",
            "#InputDept-input",
            "#cmdAddDept",
            "#IncludeDepts",
            "#ExcludeDepts",
            "#UPCBeginsWith"], 
        function(i, n) {
            $(n).prop("taborder", "y");
        });
}
于 2013-08-14T22:55:35.707 回答
2

我认为缺少括号的位置在回调函数之后:

  $.each( an_array, function(){
    // callback
  });
//-^---- this one
于 2013-08-14T22:54:51.783 回答
2

$.each是一个函数调用,因此需要有一个右括号(并且还应该有一个分号)。

$.每个([
    ...
], 功能 () {
    ...
});← 这是你的问题
于 2013-08-14T22:55:10.237 回答
2

您忘记关闭对每个人的呼叫。

function SetTabOrder() {
    $.each([
        "#BeginDate",
        "#BeginTime",
        "#EndDate",
        "#EndTime",
        "#InputSite-input",
        "#cmdAddSite",
        "#InputDept-input",
        "#cmdAddDept",
        "#IncludeDepts",
        "#ExcludeDepts",
        "#UPCBeginsWith"], 
    function(i, n) {
        $(n).prop("taborder", "y");
    })
}

如果您使用可以匹配括号的编辑器,它将对您有所帮助。以 VI 为例,您可以点击 % 符号跳转到匹配的字符。对于 windows,notepad++是一个不错的选择,对于 unix emacsvi

于 2013-08-14T22:57:53.603 回答