SyntaxError:缺少形式参数

时间:2014-08-13 15:55:30

标签: javascript html

我的代码有些错误。也许有人可以帮助我。我收到此错误:

SyntaxError: missing formal parameter
function col(10,10){

这是我的代码:

<script type="text/javascript">
   function col(<?=$result['seats_count']?>,<?=$result['booked']?>){
       if((<?=$result['seats_count']?>><?=$result['booked']?>))$('.table.table-bordered.booking tbody tr').css("background-color","#f55");
   };
</script>

5 个答案:

答案 0 :(得分:8)

FormalParameterList是逗号分隔的Indentifier tokens列表。

标识符只能以 IdentifierStart

开头
  

IdentifierStart ::

     
      
  • UnicodeLetter

  •   
  • <强> $

  •   
  • <强> _

  •   
  • \ UnicodeEscapeSequence

  •   

标识符不能以数字开头,因此10不是有效的形式参数。在创建col函数代码时,您的PHP代码必须生成正式的参数名称,每个参数名称都以字母开头(或者其他有效的起始字符之一,如上所述)。

答案 1 :(得分:3)

定义一个函数并调用它是两个独立的行为:

// 1. Define a function
function col(seatsCount, booked) {
    if(seatsCount /*some operator*/ booked) {
         $('.table.table-bordered.booking tbody tr').css("background-color","#f55");
    }
}
// 2. Call the function
col(<?=$result['seats_count']?>, <?=$result['booked']?>);

答案 2 :(得分:1)

你不能将数字作为函数参数传递,但是你可以创建一个自我调用函数来做你想做的事。

(function col(a, b) {
    if(a && b)
    {
        $('.table.table-bordered.booking tbody tr').css("background-color","#f55");
    }
})(<?=$result['seats_count']?>, <?=$result['booked']?>);

DEMO

答案 3 :(得分:1)

对我而言,这意味着我已将参数命名为关键字(在本例中为“default”),因此当我将其重命名为“default2”时,问题就消失了......

答案 4 :(得分:0)

在PHP之后,这个:

<script type="text/javascript">
   function col(<?=$result['seats_count']?>,<?=$result['booked']?>){
       if((<?=$result['seats_count']?>,<?=$result['booked']?>))$('.table.table-bordered.booking tbody tr').css("background-color","#f55");
   };

</script>

看起来像这样:

<script type="text/javascript">
    function col(10,10){
       if((10,10))$('.table.table-bordered.booking tbody tr').css("background-color","#f55");
   };

</script>

你并不清楚自己要做什么。看起来您正在使用PHP来测试值,然后设置CSS属性,如果它们相等?如果是这样,您就不需要某个功能,只有在有意义的时候才能有条件地添加javascript:

<?php
    if($result['seats_count']==$results['booked'] {
        $('.table.table-bordered.booking tbody tr').css("background-color","#f55");
    }
?>