我有这个真正简单的打字稿,这给我IE 11中的一些问题。 整个任务是,将元素从列表中取出,过滤并放回去。
所以我通过以下方式查询列表
let items = Array.prototype.slice.call(el.querySelectorAll('.pcfilter__results--tile')) as [HTMLElement];
所以我有很好的数组可以过滤。
我使用lodash进行过滤。
let result = _.filter(items, function(items) {
return items.dataset.vehicletype.indexOf(selectValue) >= 0
});
让我们想象一下我们的列表看起来像这样:
<ul>
<li data-vehicletype="foo">
<p> lorem ipsum</p>
</li>
<li data-vehicletype="bar">
<p> lorem ipsum</p>
</li>
</ul>
因此,我们进行过滤后,现在该重新填充列表了,我通过
this.list = el.querySelector('.pcfilter__results--list');
this.list.innerHTML = '';
for (let i = 0; i < result.length; i++) {
this.list.appendChild(result[i]);
}
所以我现在期望的是类似的东西。
<ul>
<li data-vehicletype="foo">
<p> lorem ipsum</p>
</li>
</ul>
但是不幸的是,这不是IE 11给我的回报:
<ul>
<li data-vehicletype="foo"></li>
</ul>
所以在我看来,appendChild()在IE 11中可以正常工作,但它只是复制第一级而不是整个DOM元素(包括其子元素)。
以前有人看过吗?那将非常有帮助,谢谢!