jQuery - 重复ID的选择器

Kin*_*rog 6 javascript jquery

我有一个页面,其中包含表单元素的重复ID.问题是我根据切换单独显示元素.所以这两个ID都不会同时出现.

但是,当我对该元素进行表单验证时,它总是选择代码中最后显示的元素(即使它是隐藏的).

是否有选择器来选择可见的重复ID?

我尝试了以下但无济于事:

$('#my_element:visible').val();
Run Code Online (Sandbox Code Playgroud)

Der*_*sed 19

由于关于这个前提的无数其他问题会告诉你,#在这种情况下你不能使用ID选择器; 你必须使用类似的东西$('div[id=foo]')找到它.

  • @Mike,我完全同意......但是,有时需要黑客来满足业务需求.我正在使用分析标记管理器将脚本覆盖在我无法控制的代码的网站之上,这严重违反了不重复的ID规则 - 更糟糕的是,他们没有使用任何类,没有留下任何其他类用jQuery正确选择元素组的方法.有关工作的黑客文档仍然对社区有用且有用; 你真的永远不知道hacks所有可能的有效用例.我没有提出这个答案,因为OP应该使用符合HTML的解决方案. (5认同)
  • "这完美地工作"听起来像它在一个版本中的一个浏览器中工作,或者在所有或一些现有版本中可能有几个浏览器.规范不允许重复,如果只有一个是可见的,你可能"有重复.像这样的黑客是一个坏主意.如果没有别的东西他们导致破碎的网站和膨胀和缓慢的浏览器解决所有破碎的代码在世界.不要那个人. (3认同)

Rww*_*wwL 10

重复的ID是无效的HTML,几乎总是会导致脚本问题.尽可能避免.