2017-07-15 58 views
0

我想基于用户是否已将类号添加到我通过json数据检索的数据库来隐藏元素。如果组件上存在所有类号,我想隐藏它。split()上的TypeError

目前,我不断收到此错误: TypeError: $(...).data(...).split is not a function

export function VisaToggleComponent() { 
let json = { 
    visa_subclass:[462,500,801] 
}; 

let elements = document.querySelectorAll('[data-visa-hide]'); 

console.log(elements); 

$(elements).each(function() { 
    let data = json.visa_subclass, 
     target = $(this).data('visa-hide').split(',').map(Number); 

    console.log(target); 

    for (let i in data) { 
     let val = data[i]; 
     let index = target.indexOf(val); 

     if(index > -1) { 
      $(this).hide(); 
     } 
    } 
}); 
} 
+0

你可以看到'$返回的值(此).data('visa-hide')'? – asiviero

+0

'target'返回的值是'462,500,800' – aszet

+0

作为整数不是字符串 – aszet

回答

0

splitString对象的一个​​方法。既然你得到了

TypeError: $(...).data(...).split is not a function

这意味着$(this).data('visa-hide')不是一个字符串。

说实话,我没有试着去了解你的代码,但是,如果你认为$(this).data('visa-hide')数据类型,你必须改变$(this).data('visa-hide').split(',')String.prototype.split.call($(this).data('visa-hide'), ',')

+0

'$(this).data('visa-hide')'是一个字符串,但是我用'map() “如果我没记错的话。 – aszet