有什么方法可以在HTML5数据属性中存储Jquery元素?

时间:2018-09-02 07:10:08

标签: javascript jquery html5

我有一个Jquery元素,希望通过以下方式存储在DOM中:

var html = '<button data-element="' + $('.some-selector') + '">Some action</button>';

$(html).appendTo('body');

console.log($('button').data('element'));

这将产生类似jQuery331040235755567121182的引用。有什么方法可以将其转换回普通的Jquery对象吗?

PS:添加按钮(例如$('button').data('element', $('.some-selector')))后,我不想存储它

1 个答案:

答案 0 :(得分:0)

您在这里遇到一些问题。在您的第一行中,$('.some-selector'])返回一个jQuery对象。通过将其添加到字符串中,对象将转换为类似"[object Object]"的对象。我想你想要的是这样的:

var html = $('<button>Some action</button>').data('element', $('.some-selector'));
$(html).appendTo('body');
console.log($(html).data('element'));

第一行创建按钮对象,并将jQuery对象添加到数据“元素”中-不知道为什么要避免这种情况。第二个将其添加到身体。第三行打印出jQuery对象。使用jQuery的.data的众多优势之一是,它避免了循环引用-如果将DOM对象存储在DOM对象中,则是加号。