2012-10-13 26 views
17

Htmljquery thiết lập dữ liệu attr

<div id="you" data-you="Hello mean">super</div> 

là #you html thay đổi yếu tố dữ liệu bạn thuộc tính

console.log($("#you").data("you")); // Hello mean 

$("#you").attr("data-you", "yes change you atribute"); 

console.log($("#you").data("you")); // Hello mean | does not change. 

Thuộc tính "dữ liệu bạn" không thay đổi khi tôi thay đổi. Tôi có thể làm cái này như thế nào?

cảm ơn bạn.

Trả lời

23

attr() Và bạn không thể phải thay đổi phương thức data().

Hãy thử theo cách sau:

console.log($("#you").data("you")); // Hello mean 

$("#you").data("you", "yes change you atribute"); // yes change you atribute 

console.log($("#you").data("you")); // yes change you atribute 

ví dụ về dữ liệu http://api.jquery.com/data/

+1

Cảm ơn bạn rất nhiều, điều này làm việc lần này. –

+1

nếu bất kỳ ai tìm thấy dòng đầu tiên của câu trả lời ở trên khó hiểu, vui lòng kiểm tra câu trả lời của tôi bên dưới. –

2

On cùng logic của bạn, để xem kết quả; thay đổi data để attr

console.log($("#you").attr("data-you")); 

Tham khảo LIVE DEMO

1

Hãy thử điều này:

$("#you").data("you", "yes change you atribute"); 
46

Có đã được một câu trả lời được chọn là một trong những chính xác, tuy nhiên dường như nó như không ai trong số các câu trả lời giải thích rõ ràng và chính xác những gì đang xảy ra.
Vì vậy, tôi xin trình bày một shot:

$(element).data(key, value)không thay đổi các html5 'đĩa dữ liệu *' thuộc tính của nguyên tố này, jQuery trong nội bộ lưu trữ các giá trị khóa (trong jQuery.cache).
Kết quả là khi bạn gọi $(element).data(key), bạn sẽ nhận được nội dung được lưu trữ nội bộ bởi jQuery.

Để trả lời câu hỏi của bạn ở đây:

Vì bạn đang tìm kiếm để thay đổi data-you thuộc tính của thẻ html của bạn thay vào đó bạn sẽ cần phải sử dụng attr() phương pháp

Như vậy:

console.log($("#you").attr("data-you")); // Hello mean 

$("#you").attr("data-you", "yes change you atribute"); 

console.log($("#you").attr("data-you")); // The data-you attribute has been changed. 
+1

Trong trường hợp ai đó quan tâm, khả năng truy cập các thuộc tính dữ liệu của HTML5 được thêm vào trong phiên bản jQuery 1.4.3. Trước đó, nó chỉ dành cho lưu trữ dữ liệu nội bộ được liên kết với một phần tử, và thực sự nó vẫn còn để lưu trữ dữ liệu nội bộ, với tính năng mới mà ban đầu bạn có thể tải một số dữ liệu với thuộc tính 'data-' của HTML5. –

+0

Đoạn mã của bạn chính xác giống như đoạn mã trong câu hỏi, ngoại trừ việc bạn xác nhận thuộc tính data-you đã bị thay đổi. Khi tôi làm điều này, thuộc tính đã không bị thay đổi. Ý của bạn là sử dụng đoạn trích từ câu trả lời của Yaşar İÇLİ? – Gerbus

+0

đoạn mã chứa 'attr' thay vì' dữ liệu' không phải là trường hợp trong mã do người khác cung cấp. hãy kiểm tra câu đố này: http://jsfiddle.net/NneCY/ và quan sát nhật ký bảng điều khiển. cảm ơn bạn. –

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