我正在尝试使用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>
我在哪里错了?
答案 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
成为dataset
(data-*="…"
)的一部分,因为其他一些组件依赖于它......好吧,dataset
只能包含字符串,而不是对象,所以你必须至少同意该值是一个JSON字符串:
link.dataset.desc = JSON.stringify(choice);