我有以下代码片段,其中我动态生成了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]' )
,但其意义要清楚得多。