2010-11-22 34 views
5

Tôi đã sử dụng rel để lưu trữ một số thông tin không phải html, những thuộc tính nào khác thường không được sử dụng để tôi có thể sử dụng để lưu trữ thông tin?Thông tin linh tinh Thuộc tính phần tử HTML

+1

Đây là nội dung nguy hiểm. Thuộc tính Rel thực sự là widley khá được sử dụng tức là Google bot trong số những thứ khác sử dụng nó. Không nên sử dụng các thuộc tính HTML được xác định cho mục đích của riêng bạn. –

+0

@Chris: Tất cả nội dung này được tạo bởi một đoạn mã JavaScript, không có ai nên đọc. –

+0

chính xác điểm! –

Trả lời

5

Bạn có thể muốn chuyển sang HTML5 và sử dụng custom data attributes.

+0

Trước khi HTML5 xuất hiện với điều này, tôi đã luôn sử dụng _something làm tên thuộc tính cho dữ liệu tùy chỉnh, theo giả định rằng rất ít thuộc tính thực sự sẽ bắt đầu bằng dấu gạch dưới. Đây có phải là một giả định "chấp nhận được" hay tôi có thể chuyển đổi mọi thứ thành dữ liệu một cái gì đó tốt hơn? –

+0

Tôi khuyên bạn nên sử dụng 'data- *', bởi vì nó sau đó là HTML hợp lệ thành món hời. –

+0

Tôi sẽ sử dụng điều này, cảm ơn. Tôi đang sử dụng hàm 'attr' của jQuery để không cần cài đặt JS gốc. –

3

Trong HTML5 bạn có thể định nghĩa của riêng bạn data- thuộc tính để lưu trữ bất cứ điều gì bạn muốn.

3

Bạn có thể tạo các thuộc tính của riêng mình nếu muốn. Nó có lẽ không phải là một ý tưởng tốt để đưa dữ liệu vào một thuộc tính nếu theo đặc điểm kỹ thuật nó nên có một cái gì đó có ý nghĩa trong đó.

2

Trong HTML 5 spec, bạn có thể sử dụng thuộc tính data-*; chúng được đảm bảo không làm bất cứ điều gì với trình duyệt và chúng cũng sẽ hoạt động trên các trình duyệt cũ hơn.

Trong JavaScript, bạn có thể truy cập nó với các thuộc tính thuộc tính bình thường:

var value = elem.getAttribute("data-foo") 
elem.setAttribute("data-foo", "value") 
elem.removeAttribute("data-foo") 

Với các trình duyệt mới, bạn có thể sử dụng elem.dataset, nhưng có thể bạn không muốn làm điều đó như trình duyệt cũ sẽ không hỗ trợ nó .

var value = elem.dataset.foo; 
elem.dataset.foo = "value"; 
elem.dataset.foo = null; 
1

supports lưu trữ thông tin trong dữ liệu- * thuộc tính nhưng HTML5 và mọi người chưa có. Vì vậy, một kịch bản thế giới thực ...

Nếu bạn không phải lo lắng về sự bền bỉ trên sao lưu, bạn có thể ánh xạ các đối tượng dữ liệu đơn giản dưới dạng tập hợp JSON var và kéo một đối tượng ra khỏi nó dựa trên một khóa cụ thể. Nhưng đó là một cách tiếp cận rộng - nhiều thông tin hơn về mục tiêu tổng thể sẽ cải thiện phản hồi.

1

Phụ thuộc vào loại thông tin bạn muốn lưu trữ và bạn định lập kế hoạch truy cập nó như thế nào. Tôi đã sử dụng thành công cả thuộc tính id và thuộc tính class để lưu trữ và truy cập ID cơ sở dữ liệu chẳng hạn và thậm chí tham chiếu cho một số bảng cơ sở dữ liệu, sau đó tôi truy xuất với jQuery để thực hiện một số yêu cầu AJAX.

Nếu bạn KHÔNG sử dụng HTML5, tôi khuyên bạn không nên sử dụng thuộc tính tùy chỉnh của riêng mình. Nếu không, giống như những người đã đề xuất trước tôi, hãy xem các thuộc tính tiền tố data-.

0

dữ liệu- * là cách để đi nếu bạn có thể sử dụng HTML5. Bạn cũng có thể dễ dàng truy cập chúng trong javascript bằng elem.data. *

Nếu không, thuộc tính tùy chỉnh có lẽ tốt hơn là thay đổi ngữ nghĩa của trang.

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