我有一个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'))
)后,我不想存储它
答案 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对象中,则是加号。