2017-07-15 9 views
0

私は、ユーザーが、私はJSONデータを通じて取得していますデータベースにクラス番号を追加したかどうかに基づいて要素を非表示にしようとしています。すべてのクラス番号がコンポーネントに存在する場合は、それを非表示にします。は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

あなたは$ 'によって返された値を見ることができますString.prototype.split.call($(this).data('visa-hide'), ',')$(this).data('visa-hide').split(',')を変更する必要があるタイプだと思うがあれば、あなたのコードを理解しようとdidntは正直に言うと、 ).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')紐状データが(このあなたが

+0

'$(この).dataセクション(「ビザ・非表示は」)'文字列ですが、その後、私は 'マップを使用して整数に変換'で 'に対して返さ() '私が正しく覚えていれば。 – aszet