You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript报错Uncaught TypeError: ll_ctq is not a function求助

问题原因与解决方案

嘿,这个问题的根源一眼就能看出来——你遇到的TypeError: ll_ctq is not a function错误,是全局作用域下的命名冲突导致的!

错误原因

你在代码开头先声明了一个全局变量:

var ll_ctq = 'll_ctq=';

紧接着又定义了同名的函数:

function ll_ctq() { /* ... */ }

在JavaScript中,函数声明和变量声明都会被提升到作用域顶部,但变量的赋值操作会覆盖掉同名函数的引用。等代码执行完毕,ll_ctq已经变成了字符串'll_ctq=',不再是一个函数,所以点击按钮调用它时就会抛出“不是函数”的错误。

解决方法

1. 重命名冲突的变量(最推荐)

把开头的变量ll_ctq改成其他不冲突的名字,比如ll_ctq_param,然后在拼接URL的地方同步修改引用即可:

修改后的JavaScript代码片段:

var web = 'http://localhost/prjct/'; 
var ll_50_50 = 'll_50_50='; 
var ll_ctq_param = 'll_ctq='; // 重命名变量
var ll_dd = 'll_dd='; 
var and = '&'; 
var play = 'play.php?'; 

function ll_ctq() { 
    var check_ll_ctq = document.getElementById("ll_ctq"), 
        classes = ['red_cross']; 

    if (check_ll_ctq.classList.contains("red_cross")) { 
        // alert("Yes"); 
    } else { 
        // alert("No"); 
        document.getElementById("ll_ctq").classList.add("red_cross"); 
        document.getElementById("A1").setAttribute('class', 'timeout'); 
        document.getElementById("B1").setAttribute('class', 'timeout'); 
        document.getElementById("C1").setAttribute('class', 'timeout'); 
        document.getElementById("D1").setAttribute('class', 'timeout'); 

        var check_ll_50_50 = document.getElementById("ll_50_50"); 
        var check_ll_dd = document.getElementById("ll_dd"); 

        var ll_ctq_status = check_ll_ctq.classList.contains("red_cross") ? "yes" : "no";
        var ll_50_50_status = check_ll_50_50.classList.contains("red_cross") ? "yes" : "no";
        var ll_dd_status = check_ll_dd.classList.contains("red_cross") ? "yes" : "no";

        var location = web + play + ll_50_50 + ll_50_50_status + and + ll_ctq_param + ll_ctq_status + and + ll_dd + ll_dd_status; 
        setTimeout(function() { 
            window.location = location; 
        }, 3000); 
    } 
}

2. 额外代码优化建议

你在函数内部多次重复声明了check_ll_ctq、classes等变量,虽然JavaScript允许,但会让代码冗余。上面的修改中已经帮你简化了变量声明,并且用三元表达式替代了冗余的if-else判断,让代码更简洁易读。

内容的提问来源于stack exchange,提问作者PBM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:42:14