Wordpress内嵌含PHP的JS代码报Uncaught SyntaxError错误求助
解决单选框切换脚本的语法错误问题
嘿,这个Uncaught SyntaxError: Unexpected end of input错误很典型——本质是你的JavaScript代码没写完,缺少了关键的闭合符号,浏览器解析到代码结尾时发现还有未完成的结构,就抛出了这个错误。
问题根源
你提供的代码片段只写了if语句的主体内容,但遗漏了三个必须的闭合标记:
if代码块的闭合大括号}- 事件处理函数的闭合大括号
} .on()方法调用的闭合括号)
另外原代码里的(function()写法有点冗余,直接用普通函数形式更稳妥,能避免不必要的语法嵌套冲突。
修正后的完整代码
$("#radio").on('change', 'input[type=radio]', function() { // 检查目标单选框是否被选中 if ($("#port-filter-<?php echo get_the_ID(); ?>").is(":checked")) { $("#port-item-container").removeClass(); $('#port-item-container').addClass('port-choice-<?php echo get_the_ID(); ?>'); } });
额外优化建议
- 简化PHP代码:
<?php echo ''.get_the_ID().''; ?>可以直接写成<?php echo get_the_ID(); ?>,空字符串拼接完全没必要,更简洁易读。 - 完善切换逻辑:如果需要处理多个单选按钮的切换,建议添加
else if或else分支,比如选中其他单选框时重置容器类名,避免只处理单一选中场景。 - 验证渲染结果:内嵌PHP后,记得查看页面源代码,确认生成的JavaScript代码是合法的(比如选择器
#port-filter-123这类是否正确生成)。
内容的提问来源于stack exchange,提问作者Tommy
相关产品推荐
相关产品推荐

