2016-10-12 1 views
1

基本的な質問にお詫びしますが、私はJSを学び始めています。私はブラックジャックゲームを構築しようとしています。そして、私は自分の.jsファイルから(カード用の)コンストラクタ関数を作成し、その関数のメソッドの1つを定義して始めました。ここに私の.jsファイルのコードがあります(私は実際のcardToString関数の中に何が入っているかはわかりません): 編集:一部の人が全コードを含めるように頼んだので、ここにあります:残りのJSコードでJQueryを実行できないのはなぜですか?

function Card(rank, suit) { 
this.rank = rank; 
this.suit = suit; 
this.toString = cardToString; 
this.createNode = cardCreateNode; 
} 
function cardToString() { 
var rank; 
var suit; 
switch (this.rank) { 
    case "A" : 
     rank = "Ace"; 
     break; 
    case "2" : 
     rank = "Two"; 
     break; 
    case "3" : 
     rank = "Three"; 
     break; 
    case "4" : 
     rank = "Four"; 
     break; 
    case "5" : 
     rank = "Five"; 
     break; 
    case "6" : 
     rank = "Six"; 
     break; 
    case "7" : 
     rank = "Seven"; 
     break; 
    case "8" : 
     rank = "Eight"; 
     break; 
    case "9" : 
     rank = "Nine"; 
     break; 
    case "10" : 
     rank = "Ten"; 
     break; 
    case "J" : 
     rank = "Jack"; 
     break; 
    case "Q" : 
     rank = "Queen"; 
     break; 
    case "K" : 
     rank = "King"; 
     break; 
    default : 
     rank = null; 
     break; 
    } 
switch (this.suit) { 
    case "C" : 
     suit = "Clubs"; 
     break; 
    case "D" : 
     suit = "Diamonds"; 
     break; 
    case "H" : 
     suit = "Hearts"; 
     break; 
    case "S" : 
     suit = "Spades"; 
     break; 
    default : 
     suit = nill; 
     break; 
    } 

if (rank == null || suit == null) 
    return ""; 
else 
    return rank + " of " suit; 
} 

$(document).ready(function() { 
$("#deal").click(function() { 
    $("#hit").fadeOut('slow'); 
}); 

}); 

これを.jsファイルに入れると、jQueryは機能しませんが、jQuery以外のすべてをコメントアウトするとうまく動作するので、私は完全に混乱しています。私はそれが私が気づいていない基本的なものだと確信していますが、私はしばらく検索して答えを見つけることができません。基本的に、JSの最初の数ビットでjQueryの動作を停止させる理由がわかりません。

は編集:私はエラーのコンソールをチェックすると誰かが私に尋ねた、と私は入手できますか十分に確認してください1:

キャッチされないでSyntaxError:予期しない識別子

がこれに続いそれが言った「jsjquery.js:4」私は4は最初の空行であるコード行を指していると思います(最初の数行についてコメントしてから、コーディングを開始する前に行を残しています)。

return rank + " of " suit; 

私はjQueryの以外のすべてをコメントアウトすると、このエラーが消える:私は今、それはエラーコードのこの部分であるライン80、上にあると言い、空行を削除しました。 これは皆さんにすべてを明確にするかもしれませんが、私はまだ失われています!

ありがとうございました。

EDIT:Ok最終編集私は約束します。答えを探してこの質問に出くわした人のために:私は文法上の間違いをいくつかしましたが、実際の問題は私がcardCreateNodeメソッドを定義しなかったことでした。私はそうしないと他のすべてが動かないことに気付かなかった。返信した皆さん、ありがとう!

+2

はあなたがエラーのブラウザコンソールをチェックしましたか? – Pointy

+3

すべてのコードを投稿しましたか? 'cardCreateNode'は投稿した場所のどこにも定義されていません。 –

+1

[javascriptのデバッグ方法](https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=how+to+debug+javascript)を参照してください。始める方法とデバッグ方法を学ぶ方法については、多くの非常に良いブログ/記事/質問があります。 – Igor

答えて

1

あなたのポストの更新に基づいて異なるエラーを持っているので、私はあなたの最新号は、あなたがこの行にエラーが表示されるということでお答えします:

return rank + " of " suit; 

あなたは反対側の連結が欠落していますそれは次のようになるはずの「の」よう:

default : 
    suit = nill; 
    break; 

あなたのswitch文でも
return rank + " of " + suit; 

あなたはこのラインを持っています

は、私はあなたがこのようになりますどのnillないnullに値を設定することを意味し、ここで考える:

default : 
    suit = null; 
    break; 
+0

ありがとう!私はその厄介な "+"記号がなかった!しかし、今私は次を取得しています: –

+0

これは私の上記のコメントにする必要がありますが、間違って入力を押した...私が今取得するエラーメッセージは "Uncaught ReferenceError:cardCreateNodeは定義されていません"です。関数内でthis.createNode = cardCreateNodeと言ったら、定義していませんか? –

+0

元の投稿にcardCreateNode関数のコードを含めていないので、そのようなものは見えません。おそらくこれを含むように元の質問を更新しますか?それは別のファイルですか?もしそうなら、元のquesitonのコードを含むファイルの前にロードされますか? – Serberuss

2
default : 
     suit = nill; 
     break; 

予期しない識別子は構文エラーです。明らかに、ここではヌルではなく、ヌルであることを意味します。

+0

それを指摘してくれてありがとう、それを修正しました!しかし、私はまだ80行目に同じエラーメッセージが表示されています... –

関連する問題