JQuery中ID相同的不同Div返回的相同数据



我有以下代码片段,其中我动态生成了div,div的ID基于事件日期,如"Tue26Nov"。如果一天只有一个事件,这意味着只有一个div具有此ID,但如果我在同一天有两个或多个事件,我将有两个或者多个div具有相同的ID,在这种情况下,JQuery返回第一个div本身的数据,但我希望它分别返回三个div的数据。以下代码:

<div id="WedNov27">Event 1</div>
<div id="WedNov27">Event 2</div>
<div id="WedNov27">Event 3</div>

我所做的是,在点击时,我将数据从这些div打印到另一个div,但它是按照打印的

事件1事件1事件1

而不是

事件1事件2事件3

你可以在这里检查我的小提琴http://jsfiddle.net/AFHfn/118/

答案在问题中;)

ID应该是唯一的,如果你想要多个具有相同"名称"的元素,你可以进行分类

<div class="WedNov27">Event n</div>

这是因为您有重复的id属性,这是无效的。请改用class对它们进行分组。

您在每次迭代中看到相同值的原因是,jQuery只返回由id选择时找到的第一个元素的值。

与其他答案一样,我建议避免使用ID——意外行为是以不应该期望它们工作的方式使用它们的结果。与其他答案不同,我建议避免使用类,并使用更特定于代码的数据属性:也许是data-date="WedNov27"?检索的语法会稍微详细一些:$( '[data-date=WedNov27]' ),但其意义要清楚得多。

最新更新