jQuery - 条件语法中的语法错误

时间:2011-09-21 18:56:14

标签: jquery syntax conditional

$(".editAd").change({
    if ($(this).val() == 1)
        {
            $("#submitBtn").val("Next Step");
        }
        else
        {
            $("#submitBtn").val("Submit Changes");
        }
    });

此代码的第二行有语法错误。遗失:财产ID后。我发誓这是在条件中正确使用val(),但我想我可能是错的......

我知道这是一个非常简单的解决方案,但是我几分钟的研究都找不到任何资源,我希望SO的用户可以帮助我。 :)

谢谢!

编辑:开发人员总是会犯一个愚蠢的错误,他们会把它们拖延一段时间...总是检查代码的完整性是否有错误,因为开发人员工具可能实际上没有找到正确的错误行,如在这种情况下。

4 个答案:

答案 0 :(得分:4)

您忘记包含 function(){}

$(".editAd").change(function(){
    if ($(this).val() == 1)
        {
            $("#submitBtn").val() = "Next Step";
            console.log($("#submitBtn").val());
        }
        else
        {
            (element.attr("name") == "submitBtn").val() = "Submit Changes"; // no idea  what this is but it doesn't look like it will work 
        }
    });

答案 1 :(得分:1)

val()是一个函数执行。

设置值类似

$('selector').val('set me');

不是

$('selector').val() = 'set me';

从那里开始。其他事情可能会消失。

答案 2 :(得分:0)

Missing : after property ID 这是由条件之前缺少function ()标识符引起的。因为它被括起来{},所以javascript解析器认为你传递了一个带有if的对象文字作为属性标识符。之后正在寻找一个冒号来确定该物业的价值。

<小时/> 不确定你要在这一行上做什么:

(element.attr("name") == "submitBtn").val() = "Submit Changes";

但看起来你试图在布尔值上调用val,这是无效的。您还要为val()的输出分配一个字符串,该字符串不起作用。

要为元素赋值,jQuery的val需要一个参数:

element.val("Submit Changes");

答案 3 :(得分:0)

您的代码存在许多问题。首先,您所讨论的错误原因是缺少function关键字。这是必需的,因为change方法将函数作为参数。

接下来,您要为val方法分配一个值,该值不正确($("#submitBtn").val() = "Next Step";)。您需要将字符串作为参数传递。

第三,你的else阻止非常混乱。我不确定你在那里做什么,但它会评估像true.val() = "Submit Changes";那样完全错误的东西。它是函数的另一个赋值,你试图在布尔值上调用该函数,而不是jQuery对象。

所以,基于这一切,这就是我认为你想要做的事情:

$(".editAd").change(function(){
    if ($(this).val() == 1) {
        $("#submitBtn").val("Next Step");
        console.log($("#submitBtn").val());
    }
    else {
        if($(element).attr("name") == "submitBtn") {
            $(element).val("Submit Changes");
        }
    }
});