2013-06-05 29 views
13

cần thiết để biết nếu một phần tử HTML có thể có nhiều thuộc tính của ID của, ví dụ:Phần tử HTML có thể có nhiều thuộc tính ID duy nhất không?

<input type="text" id="identifier1" id="selector1" /> 

Như tôi cần thiết để làm rõ tuyên bố này đề cập về selectors tại W3 website.

Nếu phần tử có nhiều thuộc tính ID, tất cả chúng phải được coi là làm ID cho phần tử đó cho mục đích của bộ chọn ID. Một tình huống như vậy có thể đạt được bằng cách sử dụng hỗn hợp của xml: id, DOM3 Core, XML DTD và kiến ​​thức không gian tên cụ thể.

Bản sao có thể xảy ra mà mọi người đang đề cập, khẳng định câu hỏi cho cú pháp này

<input type="text" id="identifier1 selector1" /> 

đó là khác biệt so với cú pháp mà tôi đang yêu cầu.

+1

Tham khảo liên kết này (Cùng một câu hỏi tại StackOverflow): http://stackoverflow.com/questions/192048/can-an-html-element-have-multiple-ids – Rubyist

+0

Vui lòng xem [câu trả lời và nhận xét] này (http này : //stackoverflow.com/a/5685221/309086) về câu hỏi tương tự được hỏi trước đó. –

Trả lời

17

cần thiết để biết nếu một phần tử HTML có thể có nhiều thuộc tính của

Câu trả lời ngắn ID? Không vì trình duyệt sẽ chỉ hiển thị cái đầu tiên.

Xem this Fiddle, tôi chỉ có thể nhắm mục tiêu trong CSS bằng cách sử dụng id đầu tiên xuất hiện trong DOM. Hãy thử thay đổi bộ chọn CSS đó để sử dụng số id thứ hai, công cụ này sẽ không hoạt động.

Đó là bởi vì nó có vẻ như ID thứ hai đã được bỏ qua bởi trình duyệt, vì đây là HTML đầu ra:

<input type="text" id="identifier1"> 

Nếu bạn thực sự cần định bổ sung đối với một phần tử, bạn nên suy nghĩ về việc sử dụng hoặc nhiều tên lớp hoặc thuộc tính dữ liệu tương ứng với dữ liệu bổ sung.

+0

Điều gì về hiệu suất tra cứu giá trị thuộc tính dữ liệu? các phiên bản trình duyệt hiện đại rất hiệu quả khi tra cứu ID, nó so sánh với các thuộc tính dữ liệu như thế nào? – matanster

+2

http://jsfiddle.net/S9R8Y/72/ nhiều id hoạt động giống như một không gian – jt3k

6

cần thiết để biết nếu một phần tử HTML có thể có nhiều thuộc tính của ID của

số Không có phần tử trong HTML có thể có nhiều hơn thì một ví dụ của một thuộc tính nhất định.

Như tôi cần thiết để làm rõ tuyên bố này

Lưu ý câu cuối cùng trong bản Tuyên Bố này.

Cũng lưu ý rằng ý tưởng CSS của "thuộc tính ID" không phải là "Thuộc tính có tên id". Cũng trích dẫn từ tài liệu đó:

ngôn ngữ tài liệu có thể chứa thuộc tính được tuyên bố là loại ID

Chỉ có thuộc tính id là một loại ID trong HTML.

+2

@mattytommo Bạn không thể nhắm mục tiêu nó vì ID thứ hai không "tồn tại" trên phần tử trong DOM. Ngoài ra, đó là HTML không hợp lệ để có nhiều ID trên một phần tử. – lifetimes

0

Không. ID yếu tố phải là duy nhất trong toàn bộ tài liệu.

+0

tôi đảm bảo rằng id luôn là duy nhất cho toàn bộ tài liệu, có thể một phần tử có nhiều id duy nhất không, tôi nên nói lại câu hỏi của mình mà tôi đoán. –

+0

Tôi chưa thử nhiều id này cho bất kỳ phần tử nào. Nhưng giả sử rằng từ đầu tiên sẽ hoạt động như một id duy nhất cho phần tử đó. ví dụ: , trong trường hợp này, tôi nghĩ trình duyệt sẽ xem xét thông qua test1 là id bằng cách thoát test3. Không chắc. – Rubyist

1

Không ID không được giống nhau cho các yếu tố html, nhưng lớp học là để sử dụng cho nhiều yếu tố, và một yếu tố có thể có nhiều lớp

4

Không, ngay cả khi bạn chỉ định nhiều id, id gặp đầu tiên thuộc tính được sử dụng.

bản sao có thể xảy ra:

Can an html element have multiple ids?

+0

nó chỉ có thể trùng lặp, nhưng nó không theo nghĩa đen –

+1

Khi tôi xác minh cả trên chrome cũng như IE, chỉ thuộc tính id đầu tiên là giữ lại. bạn không thể sử dụng các thuộc tính id khác –

1

Không, bởi vì một thuộc tính không được lặp đi lặp lại trong thẻ. Đây là quy tắc chung trong HTML, không giới hạn ở thuộc tính id. Đối với các phiên bản HTML dựa trên SGML và cho XHTML, điều này tuân theo các quy tắc chung về SGML và XML. Đối với HTML5 được tuần tự hóa HTML, hãy xem HTML5 CR, 8.1.2.3 Attributes.

Rất khó để biết lý do bạn sử dụng thuộc tính trùng lặp id, vì vậy, tôi không thể đề xuất giải pháp thay thế. Nói chung, đối với bất kỳ việc sử dụng thông thường thuộc tính id, một thuộc tính cho mỗi phần tử là đủ.

Các vấn đề liên quan