2017-04-10 11 views
0

jslintがここでエラーを生成するのはなぜですか?以下のコードスニペットについて

if (type === '#') { 
    return doc.getElementById(identifier); 
} else if (type === '.' && doc.getElementsByClassName) { 
    return doc.getElementsByClassName(identifier); 
} else if (type === '@') { 
    return doc.getElementsByName(identifier); 
} 

enter image description here

は、すべての場合には一緒にいる場合/他のリクしないように見えますか?

+0

'doc.getElementsByClassName'は、任意のポイントをしていません(常に 'true'になります)。 –

+0

理由は、あなたの 'if'ブロックのそれぞれで' return' ...だから 'else if'、' if'(jslintはあまりにも愚かで痛みを伴う "strict")の必要はありません –

+0

@ええ、「エラー」として記録された有効なコードが「エラーを無視する」リストに追加されることさえ許されません。このコードは、すべてが正しく設定され、変数がすべて定義されている限り、いくぶん有効です。 –

答えて

0

あなたのifブロック内returnを持っているので、関数が返された場合、彼らは評価されることはありませんであろうから、それを以下のいずれかのelseelse ifブロックは不要です。
else ififに変更してください。

0

私はすなわち、else if (type === '.' && doc.getElementsByClassName) {doc.getElementsByClassName

でクラスが欠落しているあなたは、クラス名を追加する必要があることを考える:それは戻りますので、

doc.getElementsByClassName('className'); 
関連する問題