如何使jQuery与包含重复ID的无效HTML一起工作?

如何使jQuery与包含重复ID的无效HTML一起工作?,jquery,Jquery,我有一个旧项目,它确实包含具有重复ID的HTML。将选择器从ID切换到类需要很多工作,我可以用JQuery来完成吗,特别是我知道要隐藏多少个div <div id="d"></div> <div id="d"></div> <div id="d"></div> 但是它只隐藏第一个div。ID应该是唯一的。尝试设置一个类,然后基于该类隐藏 <div class="d"></div> <div c

我有一个旧项目,它确实包含具有重复ID的HTML。将选择器从ID切换到类需要很多工作,我可以用JQuery来完成吗,特别是我知道要隐藏多少个div

<div id="d"></div>
<div id="d"></div>
<div id="d"></div>

但是它只隐藏第一个div。

ID应该是唯一的。尝试设置一个类,然后基于该类隐藏

<div class="d"></div>
<div class="d"></div>
<div class="d"></div>

$('.d').hide();

$('.d').hide();

ID应该是唯一的。尝试设置一个类,然后基于该类隐藏

<div class="d"></div>
<div class="d"></div>
<div class="d"></div>

$('.d').hide();

$('.d').hide();

您按id隐藏,但由于您的id不唯一,因此无法使用id。将data-*属性或类添加为标志

<div data-someattributename="flag" id="d">

$('div[data-someattributename]').hide();

我不确定ID是否在第一个ID之后被擦除,因为它们是重复的,但是如果不是,这应该可以工作

您按id隐藏,因为您的id不唯一,所以无法使用。将data-*属性或类添加为标志

<div data-someattributename="flag" id="d">

$('div[data-someattributename]').hide();

我不确定ID是否在第一个ID之后被擦除,因为它们是重复的,但是如果不是,这应该可以工作

使用class而不是id属性,因为每个元素的id必须是唯一的:

    <div class="d"></div>
    <div class="d"></div>
    <div class="d"></div>

使用类而不是id属性,因为每个元素的id必须是唯一的:

    <div class="d"></div>
    <div class="d"></div>
    <div class="d"></div>

您可以通过父类或类似div的

(".parent_class/id>div").hide();

正如Brandon所说,通过添加一个类

最重要的是id必须是唯一的

每个ID属性在文档上必须具有唯一的值

id和类选择器之间的差异

唯一真正的区别是何时应该使用它们。ID选择器通常是为页面上出现一次的内容保留的。例如,如果您有一个包含多个主题标题的页面,但有一个特定的主题标题您希望从其他主题标题中脱颖而出,那么您将为该特定主题标题创建一个ID选择器规则。ID选择器给它一个唯一的名称和标识,因此您可以更改一个主题标题,而不会影响集合的其余部分


如果多次使用相同id验证页面,则会出现错误

,您可以通过父类或类似div的

(".parent_class/id>div").hide();

正如Brandon所说,通过添加一个类

最重要的是id必须是唯一的

每个ID属性在文档上必须具有唯一的值

id和类选择器之间的差异

唯一真正的区别是何时应该使用它们。ID选择器通常是为页面上出现一次的内容保留的。例如,如果您有一个包含多个主题标题的页面,但有一个特定的主题标题您希望从其他主题标题中脱颖而出,那么您将为该特定主题标题创建一个ID选择器规则。ID选择器给它一个唯一的名称和标识,因此您可以更改一个主题标题,而不会影响集合的其余部分


如果多次使用相同id验证页面,则会出现错误

具有多个相同id的元素是无效的HTML:不能有多个相同id的元素。您是否尝试过使用类?您应该阅读基础知识。id和类之间的差异是最基本的javascript@ubercooluk他说这个项目很老,而且是原样的。他在想办法绕过它。如果你投了反对票,你应该撤销它。有几个id相同的元素是无效的HTML:你不能有多个id相同的元素。你用类试过了吗?你应该阅读基础知识。id和类之间的区别是最基本的javascript@ubercooluk他说这个项目很老,而且是原样。他在想办法绕过它。如果你投了反对票,你应该撤销它。@Fady你可能会用$('div')拉取所有div,循环它们并检查它们的ID,将字符串与“d”进行比较,然后隐藏它们。@Fady你可能会用$('div')拉取所有div,循环它们并检查它们的ID,将字符串与“d”进行比较,然后隐藏它们。