我在使用innerHTML在javascript中动态创建元素时遇到问题。这是代码:
var newElement = document.createElement("tr");
newElement.innerHTML = ['<td><a href="javascript:void(0);">Test Suite</a></td><td>4,977</td><td class="text-align-center">',
'<div class="sparkline txt-color-blue text-align-center" data-sparkline-height="22px" data-sparkline-width="90px" data-sparkline-barwidth="2">2700, 3631, 2471, 1300, 1877, 2500, 2577, 2700, 3631, 2471, 2000, 2100, 3000</div>',
].join('\n');
$("#locationsGraph").append(newElement);
问题是元素的创建恰到好处,但元素类没有实现。
有了这部分:
class="sparkline txt-color-blue text-align-center" data-sparkline-height="22px" data-sparkline-width="90px" data-sparkline-barwidth="2"
我应该得到一个条形图,但我会得到相同的数字列表。
是否与innerHTML中的类的实现有什么关系? 我也尝试手动创建所有元素并分配className,但结果是相同的
答案 0 :(得分:1)
根据the docs,您需要运行$(newElement).find('div').sparkline()
。
答案 1 :(得分:0)
您没有与
匹配的结算newElement.innerHTML = ['<td><a href="javascript:void(0);">Test Suite</a></td><td>4,977</td><td class="text-align-center">',
'<div class="sparkline txt-color-blue text-align-center" data-sparkline-height="22px" data-sparkline-width="90px" data-sparkline-barwidth="2">2700, 3631, 2471, 1300, 1877, 2500, 2577, 2700, 3631, 2471, 2000, 2100, 3000</div>',
'</td>' //this is missing
].join('\n');