I have an HTML div:
<div id='text_icon_<?php $i++; ?>' class="text_icon">Some Text</div>
that I print inside a foreach loop. I am using ajax to handle the click() event on it and change its text to Done!, so I have an output like:
<div class="text">Done!</div>
If I run the loop 4 times and I click on one of the divs (i.e. the one with class text_icon) then only first one is working while the rest of the divs are not working.
Update:
Your update indicates the below is not the problem, the IDs are unique.
Without your jQuery code it’s hard to help you debug, so here’s an example of how it can be done:
HTML:
JavaScript code using jQuery:
Live copy
Original answer:
If you’re really using “DIV id=’text_icon’ class=”text_icon…./DIV”, e.g.:
…then the problem is that the
idis not unique. ID values must be unique on the page (reference). That would seem to fit with the symptom you describe, with “only the first one” working. Most browsers, when given invalid HTML with multiple IDs, will use the ID on the first element in document order and ignore the remaining ones.If you don’t need the div to have an ID at all, you can just remove it. Otherwise, just ensure the ID is unique, e.g.: