ID đã cho chỉ có thể được sử dụng một lần trong một trang. HTML không hợp lệ để có nhiều đối tượng có cùng ID, ngay cả khi chúng nằm trong các phần khác nhau của trang.
Bạn có thể thay đổi HTML của bạn như thế này:
<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>
Sau đó, bạn có thể nhận được các mục đầu tiên trong div1 với một chọn CSS như thế này:
#div1 .edit1
On trong jQuery:
$("#div1 .edit1")
Hoặc, nếu bạn muốn lặp lại các mục trong một trong các div của mình, bạn có thể làm như sau:
$("#div1 input").each(function(index) {
// do something with one of the input objects
});
Nếu tôi không thể sử dụng khung như jQuery hoặc YUI, tôi sẽ lấy Sizzle và bao gồm nó cho logic chọn của nó (nó là cùng một công cụ chọn như bên trong jQuery). dễ dàng hơn với thư viện bộ chọn tốt.
Nếu tôi không thể sử dụng ngay cả Sizzle (có thể giảm đáng kể năng suất của nhà phát triển), bạn có thể sử dụng các hàm DOM đơn giản để di chuyển con của một phần tử đã cho.
Bạn sẽ sử dụng các hàm DOM như childNodes hoặc firstChild và nextSibling và bạn phải kiểm tra nodeType để đảm bảo bạn chỉ có loại phần tử bạn muốn. Tôi không bao giờ viết mã theo cách đó vì nó kém hiệu quả hơn nhiều so với sử dụng thư viện bộ chọn.
Bạn không thể có nhiều hơn một phần tử với id cùng trong cây DOM toàn ... 'id' phải là duy nhất, luôn luôn. –
xin vui lòng không sử dụng này. đây là đánh dấu không hợp lệ. – naveen
Khi câu trả lời @PaulPROs cho biết, bạn không có HTML. Bạn có một cái gì đó * giống * HTML, nhưng vì bạn có nhiều phần tử với cùng một 'id', nó không hợp lệ. –