jQuery中hide()方法出现Uncaught SyntaxError: Unexpected string错误求助
解决Uncaught SyntaxError: Unexpected string错误
嘿,我一眼就揪出问题啦!你这是把jQuery的before()方法用错了,还犯了个基础语法错误。
错误原因解析
before()方法的作用是在选中的元素前面插入内容,它接受的参数可以是HTML字符串、DOM元素、jQuery对象或者返回这些内容的函数。但你现在直接把$(...).hide()这种执行语句塞进了{}里传给before()——这完全不符合语法规则:
- 对象字面量
{}里必须是键值对,不能直接写执行代码; before()根本不接受这种格式的参数,这直接触发了语法错误。
另外你还有个小疏漏:第二行的选择器$( "ajax_res_{$id_actif}_{$k}" )缺少了ID选择器的#,jQuery会把它当成标签名去找,肯定找不到目标元素。
修正后的代码
根据你的需求,分两种情况给出修正方案:
情况1:只是想隐藏指定元素
如果你的目标就是隐藏.cart_quantity_button和.cart_quantity_input,那根本不需要用before(),直接执行隐藏操作即可:
<script> $( ".cart_quantity_button" ).hide(); $( ".cart_quantity_input" ).hide(); </script>
情况2:先在目标元素前插入内容,再隐藏元素
如果你是想先在#ajax_res_{$id_actif}_{$k}前面插入内容,再执行隐藏操作,那要把逻辑拆分:
<script> // 先插入你需要的内容(这里示例插入一段div,你可以替换成自己的内容) $( "#ajax_res_{$id_actif}_{$k}" ).before('<div>插入的内容</div>'); // 再执行隐藏操作 $( ".cart_quantity_button" ).hide(); $( ".cart_quantity_input" ).hide(); </script>
内容的提问来源于stack exchange,提问作者Dev Ahmed




