如何使用jQuery按name属性遍历元素并修改对应属性值
解决方案
你可以直接通过限定选择器范围+遍历的方式批量处理目标元素,代码实现如下:
$('.direct-service input[name="./season"]').each(function () { const $current = $(this); // 取值后trim处理,避免纯空格的情况被识别为非空 if ($current.val().trim() === '') { $current.attr('name', './season@Empty'); } });
原理解释
- 选择器
.direct-service input[name="./season"]直接限定了只匹配direct-service容器内的目标元素,不会误操作页面其他区域的同name输入框,范围更精准 - 调用jQuery的
.each()方法可以遍历所有匹配到的元素,解决了你之前直接调用.val()只能获取第一个元素值的问题:jQuery单值读取类API默认只会返回集合中第一个元素的对应属性,要处理全量元素必须显式遍历 - 空值判断前加
.trim()是常用的兼容处理,避免输入框内存在空白字符时被误判为非空,如果你不需要过滤空格可以去掉这层处理
内容的提问来源于stack exchange,提问作者Anderson
相关产品推荐
相关产品推荐

