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

时间:2016-08-29 12:31:39

标签: javascript html object

我正在尝试使用javascript将对象添加到属性,但它作为对象对象传递。

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

COde

return '<a href="/users?userId='+
  choice.id+'" class="tool-tip" title="'+
  choice.name+'"><span data-desc="'+
  choice+'">'+this.label(choice)+'</span></a>';

正在创建

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

我在哪里错了?

1 个答案:

答案 0 :(得分:2)

通过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将此link添加到其他DOM元素...

如果您绝对需要choice成为datasetdata-*="…")的一部分,因为其他一些组件依赖于它......好吧,dataset只能包含字符串,而不是对象,所以你必须至少同意该值是一个JSON字符串:

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