2017-03-09 9 views
1

なぜundefinedconsole.log(tes_val)の結果として得られますか?どうすれば修正できますか?`document.getElementsByClassName(...)。value`を使用すると、なぜ` undefined`が返されますか?

var tes = document.getElementsByClassName('a_b_1'); 
 
var tes_val = tes.value; 
 
console.log(tes_val);
<input type="hidden" class="a_b_1" name="c_d_1" value="1|2|3">

ありがとうございます。

var tes_val = tes[0].value; 

はしかし、これはAPIを使用するには、不器用な方法である。このコレクションで最初に見つかった要素にアクセスするためにあなたが[0]インデックスを使用する必要があるので、

+5

を渡すことで、特定の要素を選択する必要がありますコレクション。 'var tes_val = tes [0] .value;'を使ってください。 – dfsq

+0

getElementsByClassNameは配列のようなコレクションを返します。そのクラス名を持つ要素が1つしかない場合は、tes [0] .value – BenShelton

答えて

2

getElementsByClassName(...)要素のリストを返します。方法の名前で複数のsに注意してください! getElementsByClassName(...)[0]を使用して、リストの最初の要素にアクセスします。

var tes = document.getElementsByClassName('a_b_1')[0] 
 
var tes_val = tes.value 
 
console.log(tes_val) //=> "1|2|3"
<input type="hidden" class="a_b_1" name="c_d_1" value="1|2|3">

0

document.getElementsByClassNameすべての子要素の配列のようなオブジェクト。 tes`は `ので

は、だから、インデックス

var tes = document.getElementsByClassName('a_b_1'); 
var tes_val = tes[0].value; 
console.log(tes_val); 

DEMO

0

var tes = $('.a_b_1'); 
 
var tes_val = tes.val(); 
 
console.log(tes_val);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="hidden" class="a_b_1" name="c_d_1" value="1|2|3">

jqueryのための

使用.val()

+0

を使用できます。 – guradio

関連する問題