私はクラス内の問題に悩まされています。ユーザーは入力フィールドに3つの異なるものを入力します。 JavaScriptとjQueryの場合はマテリアライズと独自のsite.jsファイルを使用しますが、マテリアライズCSSとJavaScriptファイルとjQueryスクリプトも使用します。私はビール、種類、価格をうまく入力できます。サイトはそれを配列やすべてに格納します。しかし、jQueryを使ってオブジェクトでビールを作成しようとすると、ビールは未定義となります。「未定義」の表示を追加する
$('select').material_select();
var beers = [];
var Beer = function(alcohol, style, price) {
this.alcohol = alcohol;
this.style = style;
this.price = price;
};
$("#btnCreateBeer").on("click", function() {
var alcohol = $("#txtName").val();
var style = $("#dboStyle").val();
var price = $("#txtPrice").val();
beers.push(new Beer(alcohol, style, price));
console.log(beers);
$("#tblBeers").append('<tr>' +
'<td>' + beers.alcohol + '</td>' +
'<td>' + beers.style + '</td>' +
'<td>' + beers.price + '</td>' +
'</tr>');
});
<div class="container">
<div class="row">
<div class="col s4">
<div class="input-field">
<input placeholder="Name" id="txtName" type="text">
<label for="txtName">Name</label>
</div>
<div class="input-field">
<select id="dboStyle">
<option value="" disabled selected>Choose your option</option>
<option value="Ale">Ale</option>
<option value="Lager">Lager</option>
<option value="Stout">Stout</option>
<option value="Pilsner">Pilsner</option>
<option value="Porter">Porter</option>
<option value="Wheat">Wheat</option>
</select>
<label>Style</label>
</div>
<div class="input-field">
<input placeholder="Price" id="txtPrice" type="text">
<label for="txtPrice">Price</label>
</div>
<div class="btn" id="btnCreateBeer">Create</div>
</div>
<div class="col s8">
<table>
<thead>
<tr>
<th>Name</th>
<th>Style</th>
<th>Price</th>
<th></th>
</tr>
</thead>
<tbody id="tblBeers"></tbody>
</table>
</div>
</div>
</div>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/js/materialize.min.js"></script>
<script type="text/javascript" src="js/materialize.js"></script>
<script type="text/javascript" src="js/site.js"></script>
ここで 'beers'は配列ではないオブジェクトで、' array'から値にアクセスする際に小さなミスをしているため、 'undefined'となっています。 – itzmukeshy7