JavaScript条件语句遇Unexpected Token {错误,列表单选按钮逻辑求助
解决有序列表嵌入JS单选判断的语法错误问题
嘿,看起来你在表单单选按钮的跳转逻辑上碰到了「Unexpected Token {」的语法坑——这个错误基本是因为你尝试直接在HTML结构里嵌入了不符合规范的JavaScript代码,或者语法结构有缺失。咱们结合你给出的代码片段来一步步修正:
修正后的完整代码示例
<ol> <li data-input-trigger> <label class="fs-field-label fs-anim-upper" for="q1">Welcome <br><br> Is this application for yourself or someone else?</label> <div class="fs-radio-group fs-radio-custom clearfix fs-anim-lower"> <span> <input id="radio_myself" name="radMyself" type="radio" value="myself"> <label for="radio_myself">Myself</label> </span> <span> <input id="radio_someone" name="radMyself" type="radio" value="someone"> <label for="radio_someone">Someone else</label> </span> </div> </li> <!-- 后续列表项,默认隐藏,根据选择显示 --> <li id="q2-myself" style="display: none;"> <label class="fs-field-label">接下来是关于你自己的问题...</label> </li> <li id="q3-someone" style="display: none;"> <label class="fs-field-label">接下来是关于他人的问题...</label> </li> </ol> <script> // 获取所有同名的单选按钮 const radioGroup = document.querySelectorAll('input[name="radMyself"]'); // 给每个单选按钮绑定状态变化事件 radioGroup.forEach(radio => { radio.addEventListener('change', function() { const myselfItem = document.getElementById('q2-myself'); const someoneItem = document.getElementById('q3-someone'); // 根据选中值判断并切换列表项显示 if (this.value === 'myself') { someoneItem.style.display = 'none'; myselfItem.style.display = 'block'; // 平滑滚动到目标列表项 myselfItem.scrollIntoView({ behavior: 'smooth' }); } else if (this.value === 'someone') { myselfItem.style.display = 'none'; someoneItem.style.display = 'block'; someoneItem.scrollIntoView({ behavior: 'smooth' }); } }); }); </script>
关键修正点:
- 别直接在HTML里嵌复杂JS逻辑:之前的错误大概率是你把
if(){}这类代码直接写在了HTML标签属性或内容里,浏览器解析HTML时根本识别不了这种JS语法,自然会抛出Unexpected Token错误。 - 用事件监听处理交互:把单选按钮的状态检测逻辑放在独立的
<script>标签里,通过change事件触发判断,这是符合JS语法规范的标准写法。 - 检查语法完整性:确保
if语句的条件有圆括号包裹、代码块有大括号闭合,同时补全你代码里没写完的value属性值,这些细节很容易引发语法解析失败。
内容的提问来源于stack exchange,提问作者user9489641
相关产品推荐
相关产品推荐

