2

我正在创建一个 jQuery 插件,它会生成很多divs. 最初我使用append如下函数创建所有元素。

var myObject= $('<div></div>').addClass('myobjectname');
parentObject.append(myObject);

我有很多这样创建的元素,并且每个元素都有不同的data关联,myObject.data('mykey',ajavascriptobject); 但是后来,当我开始阅读更多关于 jQuery 优化的内容时,我了解到像这样的 DOM 操作函数append在性能方面非常昂贵。

现在,我尝试将整个div结构创建为字符串,然后将其作为一个整体附加到父 DOM 对象,这应该会大大提高性能。

var i=0;
var myBigString = [];
myBigString[i++] = "<div class=\"myobjectname\">";
myBigString[i++] = "my content";
myBigString[i++] = "</div>";
parentObject.append(myBigString.join(''));

我正在使用该data()功能来存储有关每个对象的详细信息,以便以后访问它(单击/鼠标悬停等时)。但是现在,由于我正在创建整个div结构的字符串,

data如果我将它们创建为字符串并稍后将其附加到 DOM,如何将它们关联到元素?

4

1 回答 1

2

你这样做:

<div data-datum-name="your data string"></div>

对于对象:

<div data-datum-name=' + JSON.stringify(yourObject) + '></div>

JSFiddle 示例

于 2013-02-07T19:38:02.520 回答