Данный идентификатор может быть использован только один раз на странице. Недопустимый HTML для нескольких объектов с одинаковым идентификатором, даже если они находятся в разных частях страницы.
Вы можете изменить свой HTML-код на это:
<div id="div1" >
<input type="text" class="edit1" />
<input type="text" class="edit2" />
</div>
<div id="div2" >
<input type="text" class="edit1" />
<input type="text" class="edit2" />
</div>
Затем вы можете получить первый элемент в div1 с помощью селектора CSS, например:
#div1 .edit1
Вкл в JQuery:
$("#div1 .edit1")
Или, если вы хотите перебрать элементы в одном из ваших элементов, вы можете сделать это следующим образом:
$("#div1 input").each(function(index) {
// do something with one of the input objects
});
Если бы я не мог использовать фреймворк, такой как jQuery или YUI, я бы взял Sizzle и включил его для своей логики селектора (это тот же движок селектора, что и внутри jQuery), потому что манипулирование DOM в значительной степени легче с хорошим библиотека селектора.
Если бы я не смог использовать даже Sizzle (что привело бы к значительному снижению производительности разработчика), вы могли бы использовать простые функции DOM для обхода дочерних элементов данного элемента.
Вы бы использовали функции DOM, такие как childNodes или firstChild и nextSibling, и вам нужно было бы проверить nodeType, чтобы убедиться, что вы получили только те элементы, которые вам нужны. Я никогда не пишу код таким образом, потому что он гораздо менее продуктивен, чем использование библиотеки селекторов.