如何使用javascript将对象添加为属性?

如何使用javascript将对象添加为属性?,javascript,html,object,Javascript,Html,Object,我试图使用javascript将对象添加到属性中,但它是作为对象传递的 var choice = {'name':'one',id:1} 代码 返回“”; 它创造了 <a href="/users?userId=1" class="tool-tip" title="userName"> <span data-desc="Object Object"></span></a> 我错在哪里?当通过Javascript操作DOM时,绝对不需要经过

我试图使用javascript将对象添加到属性中,但它是作为对象传递的

var choice = {'name':'one',id:1}
代码

返回“”;
它创造了

<a href="/users?userId=1" class="tool-tip" title="userName">
<span data-desc="Object Object"></span></a>


我错在哪里?

当通过Javascript操作DOM时,绝对不需要经过简化的HTML表示。使用任意属性直接创建DOM对象:

var link = document.createElement('a');
link.href = '/users?userId=' + choice.id;
link.classList.add('tool-tip');
link.title = choice.name;

var content = document.createElement('span');
content.desc = choice;
content.textContent = this.label(choice);

link.appendChild(content);

return link;
然后
appendChild
这个
链接到另一个DOM元素

如果您确实需要
choice
成为
dataset
data-*=“…”
)的一部分,因为其他组件依赖于它……那么,
dataset
只能保存字符串,而不能保存对象,因此您至少必须同意该值是JSON字符串:

link.dataset.desc = JSON.stringify(choice);

不要使用字符串创建元素。choice是一个对象,您希望得到什么?张贴此标签
too@epascarello我还可以使用什么?@mplungjan它是一个对象,在单击元素时我必须执行一些操作什么是
this.label()
?您需要在
数据描述
属性中写入什么?如果你想要一个有效的答案,你需要提供这些细节。请参阅:
content.dataset.desc=choice
仍然提供
啊,是的,我忘记了
dataset
是字符串的映射…已更新@库纳尔
link.dataset.desc = JSON.stringify(choice);