Dany identyfikator można użyć tylko raz na stronie. Nieprawidłowy kod HTML ma wiele obiektów o tym samym identyfikatorze, nawet jeśli znajdują się w różnych częściach strony.
Można zmienić HTML do tego:
<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>
Następnie można uzyskać pierwszą pozycję w div1 z selektora CSS jak poniżej:
#div1 .edit1
On w jQuery:
$("#div1 .edit1")
Lub, jeśli chcesz powtórzyć elementy w jednym z twoich div, możesz to zrobić tak:
$("#div1 input").each(function(index) {
// do something with one of the input objects
});
Gdybym nie mógł użyć ramy jak jQuery lub YUI, chciałbym tam dostać Sizzle i to, że za to logiki sterującej (jest to ten sam silnik wybierak jak jest wewnątrz jQuery), ponieważ manipulacje DOM jest masywnie łatwiej z dobrą biblioteką selektorów.
Gdybym nie mógł używać nawet Sizzle (co byłoby ogromnym spadkiem wydajności programistów), można użyć funkcji DOM do przechodzenia przez dzieci danego elementu.
Będziesz używał funkcji DOM, takich jak childNodes lub firstChild i nextSibling, a będziesz musiał sprawdzić nodeType, aby upewnić się, że masz tylko te elementy, które chciałeś. Nigdy nie piszę kodu w ten sposób, ponieważ jest on o wiele mniej wydajny niż przy użyciu biblioteki selektorów.
Nie można mieć więcej niż jeden element z tym samym identyfikatorem w całym drzewie DOM ... 'id' musi być wyjątkowym, zawsze. –
proszę, nie używaj tego. to jest nieprawidłowy znacznik. – naveen
Jak wskazuje odpowiedź @PaulPROs, nie masz HTML. Masz coś * przypominającego * HTML, ale ponieważ masz wiele elementów z tym samym "identyfikatorem", jest on nieprawidłowy. –