2009-09-16 30 views

Trả lời

14

Cho đến khi không có HTML5. Với HTML 5 có điều khoản cho điều này với thuộc tính data-*.

Ví dụ: -

<div id="myStuff" data-mydata="here is my data"> 

Trong công nghệ hiện tại không có "chính thức" đi để làm điều này. Tuy nhiên tất cả các trình duyệt cho phép bạn thêm bất kỳ thuộc tính tùy ý để một phần tử HTML như vậy trong HTML4 bạn có thể làm điều này: -

<div id="myStuff" data-mydata="here is my data"> 

Mà như bạn có thể thấy là giống hệt nhau nhưng không offically sactioned và nếu bạn muốn nghiêm ngặt XHMTL tuân thủ sẽ được coi là "bị hỏng".

Bạn có thể truy cập vào các thuộc tính bạn sẽ giống như bất kỳ khác: -

var mydata = document.getElementById("myStuff").getAttribute("data-mydata"); 
+0

Downvoter, bình luận xin vui lòng? – AnthonyWJones

3

Bạn có thể sử dụng html5 data-* attributes? Nó sẽ không xác thực trên html4, nhưng nó vẫn có thể là lựa chọn tốt nhất ...

+1

Mặc dù nó sẽ không xác nhận nghiêm ngặt trên html4, nó sẽ vẫn hoạt động vì tất cả các trình duyệt chấp nhận nó, và cuối cùng, đó là những gì thực sự quan trọng. – awe

0

Có một cái nhìn tại www.htmlref.com hoặc W3C cho các thuộc tính được sử dụng.

Ngoài những thứ bạn chỉ có thể thêm của riêng bạn, chúng sẽ hiển thị và chúng sẽ có thể truy cập thông qua mã ví dụ trong C# bạn có thể truy cập bộ sưu tập thuộc tính điều khiển.

Control.Attributes ["MyCustomAttribute"] = "Hello World";

0

có các thuộc tính relrev, hoạt động trong các thành phần có thuộc tính href. chúng có ý nghĩa ngữ nghĩa, nhưng thường bị lạm dụng như một thuộc tính để lưu trữ thông tin bổ sung

+2

Vì vậy, chúng ta cũng nên lạm dụng các thuộc tính đó? – Gumbo

1

Nếu bạn đang lưu trữ dữ liệu để sử dụng trong javascript, bạn cũng có thể sử dụng một cái gì đó như plugin siêu dữ liệu của jQuery. Về cơ bản, bạn có thể lưu trữ dữ liệu trong lớp học của phần tử = "" thuộc tính, như vậy:

<div id="aaa" class="class1 class2 class3 { type: 'food', color: 'green' }"></div> 

Sau đó, trong javascript:

alert($('#aaa').metadata().color) // "green" 

bộ dụng cụ khác sử dụng các tiêu đề hoặc rel thuộc tính để lưu trữ dữ liệu. Trong khi điều này là xác thực hơn thân thiện, nó có thể hoặc có thể không được tốt hơn bằng cách sử dụng câu trả lời của AnthonyWJones chỉ sử dụng các thuộc tính không chuẩn. Nó sẽ "phá vỡ" xác nhận, nhưng sau đó một lần nữa theo Dojo, thuộc tính tùy chỉnh là HTML hoàn toàn hợp lệ, ngay cả khi chúng không xác thực đối với DTD.

Vì vậy không - không có một thuộc tính cụ thể được chấp nhận duy nhất mà bạn có thể đổ tất cả dữ liệu. Tất cả các thuộc tính hiện có đều dành cho các mục đích sử dụng cụ thể. Nhưng bạn có thể 1) tạo thuộc tính của riêng bạn hoặc 2) coopt một thẻ hiện có để sử dụng lại cho mục đích của bạn. Chỉ muốn chỉ ra phương án thay thế.

+0

hmm câu trả lời hay, và thành thật mà nói tôi đã sử dụng nó trước khi tôi nghĩ rằng tháng trước – lock

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