使用 jQuery 的 data() 将使用的数据创建原生 dom 元素
Creating native dom element, with data that jQuery's data() will use
我想创建一个 DOM 元素,以原生方式将数据附加到它。然后,稍后创建它的 jQuery 元素,将(自动)这些数据设置为可通过 data() 函数使用。
var x = document.createElement("div");
x. ???? // add the data {a: {x: 4, y:6}}
x = $(x);
var obj = x.data("a")
console.log(a.x); // getting '4'
可以做到吗?如何做到?
请注意,data-[attrib-name]
将不起作用,因为我需要复杂的数据。
您可以使用 javascript 的 setAttribute()
设置 data
属性,如下所示:
var theDiv = document.createElement("div");
theDiv.setAttribute('data-x', '4');
theDiv.setAttribute('data-y', '6');
访问它们:
console.log(theDiv.getAttribute('data-y'));
也可以使用 jQuery:
$(theDiv).data("x");
您可以使用 $.data()
在 jQuery
中的原生 DOM 节点上设置数据
var x = document.createElement("div");
$.data(x, 'a', {x: 4, y:6});
x = $(x);
var obj = x.data("a")
console.log(obj);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
我想创建一个 DOM 元素,以原生方式将数据附加到它。然后,稍后创建它的 jQuery 元素,将(自动)这些数据设置为可通过 data() 函数使用。
var x = document.createElement("div");
x. ???? // add the data {a: {x: 4, y:6}}
x = $(x);
var obj = x.data("a")
console.log(a.x); // getting '4'
可以做到吗?如何做到?
请注意,data-[attrib-name]
将不起作用,因为我需要复杂的数据。
您可以使用 javascript 的 setAttribute()
设置 data
属性,如下所示:
var theDiv = document.createElement("div");
theDiv.setAttribute('data-x', '4');
theDiv.setAttribute('data-y', '6');
访问它们:
console.log(theDiv.getAttribute('data-y'));
也可以使用 jQuery:
$(theDiv).data("x");
您可以使用 $.data()
在 jQuery
var x = document.createElement("div");
$.data(x, 'a', {x: 4, y:6});
x = $(x);
var obj = x.data("a")
console.log(obj);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>