这是我得到的错误:
SyntaxError:元素列表后缺少]
注意:[在第959行第12栏打开
这是参考输出:
var specifications = [
[ "<option value="'1'">"'CPU'"</option>" ],
[ "<option value="'2'">"'ram'"</option>" ],
[ "<option value="'3'">"'LCD'"</option>" ],
[ "<option value="'4'">"'Mouse'"</option>" ],
[ "<option value="'5'">"'Graphic'"</option>" ],
[ "<option value="'6'">"'Keyboard'"</option>" ],
];
这是我的代码:
var specifications = [
@foreach($specifications as $specification)
[ "<option value="'{{ $specification->id }}'">"'{{ $specification->title }}'"</option>" ],
@endforeach
];
该如何解决?
答案 0 :(得分:2)
您的字符串中没有转义的引号。
请考虑以下输入之一:
"<option value="'1'">"'CPU'"</option>"
。它以"
开头,以"
结尾。但是它的中间还有一堆"
,这使解析器感到困惑。因此,您之间的任何"
都必须通过将其更改为\"
来逃脱:
var specifications = [
@foreach($specifications as $specification)
[ "<option value=\"'{{ $specification->id }}'\">\"'{{ $specification->title }}'\"</option>" ],
@endforeach
];
编辑:实际上,您似乎不需要太多的引号。 考虑更改
"<option value="'1'">"'CPU'"</option>"
到
"<option value='1'>CPU</option>"
在这种情况下,您无需转义任何内容,并且代码看起来会更简洁:
var specifications = [
@foreach($specifications as $specification)
[ "<option value='{{ $specification->id }}'>{{ $specification->title }}</option>" ],
@endforeach
];