调用函数时出现意外的标记}错误

时间:2014-12-31 21:45:08

标签: javascript php function syntax-error

当我调用这个javascript函数时,我收到错误消息“Uncaught SyntaxError:Unexpected token}”。

function completed(num, title)
{
    if(localStorage.getItem(num + "done" + title) === 'true')
    {
        document.getElementById("completedclick" + title).style.color="#004600";
        document.getElementById("completed" + title).style.background="-webkit-linear-gradient(left, red, white)";
        colored = false;
        localStorage.setItem(num + "done" + title, false);
    }
    else
    {
        document.getElementById("completedclick" + title).style.color="#8B1A1A";
        document.getElementById("completed" + title).style.background="-webkit-linear-gradient(left, green, white)";
        colored = true;
        localStorage.setItem(num + "done" + title, true);
    }

}

该部分代码调用该函数:

<div class='completed".$done."' id='completed".$passer."'>
    <a href='#!' id='completedclick".$passer."' onclick='completed('{class1}', ".$passer.")'>
        Completed
    </a>
</div>
填写模板时,

{class1}会被相应的类替换,而$ passer是从数据库中获取的变量。

请帮助,我已经尝试了一切,但似乎无法找到问题。

3 个答案:

答案 0 :(得分:1)

<div class='completed".$done."' id='completed".$passer."'>
    <a href='#!' id='completedclick".$passer."' onclick='completed('{class1}', ".$passer.")'>
        Completed
    </a>
</div>

应该是:

<?php
  echo "<div class='completed".$done."' id='completed".$passer."'><a href='#' id='completedclick".$passer."' onclick='completed('".$class1."', ".$passer.")'> Completed </a></div>";
?>

无论如何,我能说出来。它可能需要一些调整,但一般的想法是你缺少所有<?php ?>标签并试图在这里使用php变量。

干杯!

修改

可能需要一些'或'修复

答案 1 :(得分:0)

看起来你正在使用单引号和双引号混音。尝试修复此块的第2行:

<div class='completed".$done."' id='completed".$passer."'>
<a href='#!' id='completedclick".$passer."' onclick='completed('{class1}', ".$passer.")'>
    Completed
</a>
</div>

<div class='completed".$done."' id='completed".$passer."'>
<a href='#!' id='completedclick".$passer."' onclick='completed("{class1}", ".$passer.")'>
    Completed
</a>
</div>

答案 2 :(得分:0)

好的,改变这个

<div class='completed".$done."' id='completed".$passer."'>
    <a href='#!' id='completedclick".$passer."' onclick='completed('{class1}', ".$passer.")'>
        Completed
    </a>
</div>

<div class="completed<?php echo $done;?>" id="completed<?php echo $passer;?>">
    <a href="#!" id="completedclick<?php echo $passer;?>" onclick="completed('{class1}', '<?php echo $passer;?>')">
        Completed
    </a>
</div>

记住引号。我还建议在类的html和php部分之间使用-

class="completed-<?php echo $done;?>"

只是阅读方式更好。