簡體   English   中英

未捕獲的語法錯誤:意外的令牌

[英]Uncaught Syntax Error: Unexpected token

我還在學習jQuery。 我正在嘗試編寫一個腳本,該腳本使用rel =“ toggleSelect”查找任何元素。 它應在我的函數中添加一個onclick屬性,該屬性啟用或禁用所提供的group(“ actions”數組)中的所有復選框。 我收到一條錯誤消息:“未捕獲的語法錯誤:意外的令牌}”。 我不知道為什么。 我認為這與groupId燙發輸入的選擇器有關。 TYIA!

$(function(){
        $('input[rel="toggleSelect"]').on("click", function(){
                var groupId = $(this).attr("id");
                var actions = new Array("read", "create", "reply", "moderate");
                for(var i=0;i<=actions.length;i++){
                    checkboxName = $('input[name="perms[" + groupId + "][" + actions[i] + "]"');
                    if(checkboxName.is(":enabled")){
                        checkboxName.prop("disabled", true);
                    } else {
                        checkboxName.prop("disabled", false);
                    }
                }
        }
    });

輸入的示例:

<input type="checkbox" name="perms[1][read]" value="1" checked="checked">

綁定單擊事件處理程序時,一旦修復了缺失的括號,此行就會出現問題:

checkboxName = $('input[name="perms[" + groupId + "][" + actions[i] + "]"');

似乎您正在嘗試通過將某些變量的值與字符串文字連接起來來動態構建字符串,但是在連接之前您使用了錯誤的引號類型來結束字符串。 當您實際需要單引號時,使用雙引號會導致完全無效的jQuery選擇器。

將其更改為以下內容:

checkboxName = $('input[name="perms[' + groupId + '][' + actions[i] + ']"');

您錯過了結賬) 另外,您需要通過var關鍵字實例化您的checkboxName以及以其他方式串聯選擇器,最終代碼應如下所示:

$(function () {
    $('input[rel="toggleSelect"]').on("click", function () {
        var groupId = $(this).attr("id");
        var actions = new Array("read", "create", "reply", "moderate");
        for (var i = 0; i <= actions.length; i++) {
            var checkboxName = $('input[name="perms[' + groupId + '][' + actions[i] + ']"');
            if (checkboxName.is(":enabled")) {
                checkboxName.prop("disabled", true);
            } else {
                checkboxName.prop("disabled", false);
            }
        }
    }); // <-- here
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM