2012-02-08 40 views
24

Theo the dataset spec, cách element.dataset có nghĩa là xóa thuộc tính dữ liệu? Xem xét:Cách xóa thuộc tính data- * bằng cách sử dụng tập dữ liệu HTML5

<p id="example" data-a="string a" data-b="string b"></p> 

Nếu bạn làm điều này:

var elem = document.querySelector('#example'); 
elem.dataset.a = null; 
elem.dataset.b = undefined; 
elem.dataset.c = false; 
elem.dataset.d = 3; 
elem.dataset.e = [1, 2, 3]; 
elem.dataset.f = {prop: 'value'}; 
elem.dataset.g = JSON.stringify({prop: 'value'}); 

DOM trở này trong Chrome và Firefox:

<p id="example" 
    data-a="null" 
    data-b="undefined" 
    data-c="false" 
    data-d="3" 
    data-e="1,2,3" 
    data.f="[object Object]" 
    data.g="{"prop":"value"}" 
></p> 

Chrome/Firefox thực hiện bắt chước setAttribute. Về cơ bản nó áp dụng .toString() trước tiên. Điều này có ý nghĩa với tôi ngoại trừ việc xử lý null vì tôi mong đợi rằng null sẽ xóa thuộc tính. Nếu không như thế nào API dữ liệu làm tương đương với:

elem.removeAttribute('data-a'); 

Và những gì về các thuộc tính boolean:

<p data-something> tương đương với <p data-something=""> Hmm.

Trả lời

32

Sẽ không 'xóa' xóa yếu tố tập dữ liệu? Ví dụ .:

<div id="a1" data-foo="bar">test</div> 

<script> 
var v = document.getElementById('a1'); 
alert(v.dataset.foo); 
delete v.dataset.foo; 
alert(v.dataset.foo); 
</script> 
+0

'xóa tác phẩm elem.dataset.foo'! – ryanve

+8

Lưu ý; 'delete v.dataset.foo;' sẽ không hoạt động trong Safari. Một giải pháp trình duyệt chéo sẽ là; 'v.removeAttribute ('data-foo')' –

+0

@maximdim, bạn có thể vui lòng cập nhật câu trả lời của bạn để đưa vào nhận xét từ Jeremy không? Ngay cả trong Safari 10, đây vẫn là một vấn đề. Safari 11 sửa lỗi này (được kiểm tra bằng Bản xem trước kỹ thuật của Safari) – Dogoku

-5
<div data-id="test">test</div> 

$(document).ready(function(){ 
    $("div").removeAttr("data-id"); // removing the data attributes. 
    console.log($("div").data("id")); // displays in the console. 
}); 
+1

http: //jsfiddle.net/shakeellal/EjV5u/ – Shakeel

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