后来我想可能是与这些元素的ID本身有关。
三个元素,id都是select-rule,结果当我$("#select-rule")时,发现只有一个能遍历到。最终我只好用了一个data-group来代替。
是不是JQuery在查询id时,还有别的处理?难道是正则表达式?因为中间有一个-符号所以才不行吗。那就很奇怪,别的属性可以就id这个属性有问题,难道只有查询id时才正则吗。
网页里面的id就跟身份证一样,每个元素都不应该相同。原生dom里有getElementById获取的是单个节点,其它如getElementsByClass、getElementsByName等等都是获取的节点集合。jq里面解析以#开头的选择器时,直接使用了getElementById,这个返回的是单个节点,也就是页面里第一个id为参数所给出的那个id的节点。较早之前的版本jq,可以把id当属性来获取元素,即$('[id=select-rule]'),不过不知道最新的版本能不能这么干了。
当然,最好还是id取唯一值。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。