如何使用jQuery跳过select元素中value为'0'的option标签?
解决方法
要跳过value='0'的选项,只需在filter的判断逻辑中额外增加排除条件即可,同时保留文本匹配的核心逻辑。具体修改如下:
修正后的JavaScript函数
function getValue() { var myText = "Dog"; // 筛选文本匹配且value不为'0'的选项 return $("#animals option").filter(function() { return $(this).text().trim() === myText && $(this).val() !== '0'; }).val(); }
关键说明
- 使用
text().trim()替代html():原HTML中option标签未正确闭合,文本可能包含多余空格,trim()能避免空格导致的匹配失效 - 添加
$(this).val() !== '0'条件:直接排除value为'0'的选项,确保只返回符合文本要求且value非0的结果 - 原函数缺少
return语句,调用时无法获取结果,修正后添加了返回逻辑
完整可运行示例
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <select id="animals"> <option value='0'>Dog</option> <option value='1'>Dog</option> <option value='2'>Cat</option> </select> <script> function getValue() { var myText = "Dog"; return $("#animals option").filter(function() { return $(this).text().trim() === myText && $(this).val() !== '0'; }).val(); } // 测试:调用后会输出1 console.log(getValue()); </script>
内容的提问来源于stack exchange,提问作者Raven
相关产品推荐
相关产品推荐

