我尝试获取所有在打字稿中都有类名的元素,并且需要检查每个元素的数据属性,这是我到目前为止所做的:
let getTopElements :NodeListOf<HTMLElement> = document.querySelectorAll('.timeline-row');
var newArr: HTMLElement[] = Array.prototype.slice.call(getTopElements);
if (getTopElements){
for (let element of newArr){
if (element.data('options') && element.data('options').type === 'TOP') {
this.player.currentTime(element.data('options').end).pause();
}
}
}
但在我的if条件行中,我在数据Property 'data' dose not exist on type HTMLElement
我这样做错了吗?
答案 0 :(得分:1)
因为data()
是jQuery获取数据属性的方法。您应该使用dataset
属性来修改和读取数据属性。另请注意,您只能在数据属性中存储字符串值:
const data = element.dataset;
data.optionsType = 'TOP';
if (data.optionsType === 'TOP') {
this.player.currentTime(data.optionsEnd).pause();
}
另一种选择是使用getAttribute('data-*')
获取值,或使用setAttribute('data-*', value)
来设置值。
您可以查看MDN page以获取有关如何正确使用数据属性的教程。