2017-12-14 24 views
0

私はオブジェクトを作成し、出力にidの値をしたいのです:オブジェクトから特定の値を取得するにはどうすればよいですか?

var result = {}; 
 
    $.each($('.color input').serializeArray(), function() { 
 
     result[this.name] = this.value; 
 
    }); 
 
    
 
    console.log(result[id]); 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="color" style="background-color:pink"> 
 
<input type="hidden" name="name" value="fred"> 
 
<input type="hidden" name="id" value="23"> 
 
</div>

私が期待した結果が23

+0

[変数を使用して動的にアクセスオブジェクトプロパティ]の可能な重複(https://stackoverflow.com/questions/4244896/dynamically-access-object-property-using-variable) – msanford

答えて

1

ブラウザはidが可変であることを信じているので、あなたが受けているエラーです。

例1:アクセスプロパティ値使用してブラケット記法

var result = {}; 
 
    $.each($('.color input').serializeArray(), function() { 
 
     result[this.name] = this.value; 
 
    }); 
 
    
 
    console.log(result['id']); 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="color" style="background-color:pink"> 
 
<input type="hidden" name="name" value="fred"> 
 
<input type="hidden" name="id" value="23"> 
 
</div>

あなたがオブジェクトからプロパティの値を取得するかresult['id']またはresult.id経由でアクセスする必要があります例2:オブジェクト表記によるアクセスプロパティ値

var result = {}; 
 
    $.each($('.color input').serializeArray(), function() { 
 
     result[this.name] = this.value; 
 
    }); 
 
    
 
    console.log(result.id); 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="color" style="background-color:pink"> 
 
<input type="hidden" name="name" value="fred"> 
 
<input type="hidden" name="id" value="23"> 
 
</div>

+0

ああすごい!私はとても近いとは知らなかった! – Jarla

2

あるidが宣言されていないので、あなたがresult['id']またはresult.idを呼び出す必要があります変数として

var result = {}; 
 
    $.each($('.color input').serializeArray(), function() { 
 
     result[this.name] = this.value; 
 
    }); 
 
    
 
    console.log(result.id); 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="color" style="background-color:pink"> 
 
<input type="hidden" name="name" value="fred"> 
 
<input type="hidden" name="id" value="23"> 
 
</div>
すべての

2

まず、あなたは、2番目の引数として取得することができますオブジェクトからnamevalueプロパティを取得する必要があります。そして、['id'] or .id構文を使用してプロパティを取得します。

var result = {}; 
 
$.each($('.color input').serializeArray(), function(i, v) { 
 
    result[v.name] = v.value; 
 
}); 
 

 
console.log(result.id);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="color" style="background-color:pink"> 
 
    <input type="hidden" name="name" value="fred"> 
 
    <input type="hidden" name="id" value="23"> 
 
</div>

またはjQueryの入力要素コレクションにeach()方法を用いて単に繰り返すことによって次のようにオブジェクトを生成します。

var result = {}; 
 
$('.color input').each(function() { 
 
    result[this.name] = this.value; 
 
}); 
 

 
console.log(result.id);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="color" style="background-color:pink"> 
 
    <input type="hidden" name="name" value="fred"> 
 
    <input type="hidden" name="id" value="23"> 
 
</div>