0

次の形式のjsonデータがあります

 {"Jack":["my1@email.com","US"],"Rob":["rob@email.com","UK"]}

選択タグがあります。選択ボックスから選択された値が「Jack」に等しい場合、データを出力する必要があります"my1@email.com","US"

セレクトボックスオンチェンジ機能は

       function printDataOf(val){

        now if selectd value is Jack
        alert()   // should alert my1@email.com
        alert()   // should alert US

どうすればいいのですか?

4

8 に答える 8

1

これでうまくいくはずです。

printDataOf('Jack');

function printDataOf(val) {

    var data = '{"Jack":["my1@email.com","US"],"Rob":["rob@email.com","UK"]}';

    var match = JSON.parse(data)[val];
    var email = match[0];
    var country = match[1];

    alert(email);
    alert(country);

}
于 2013-09-03T10:45:07.793 に答える
0

これを試して、json実際のオブジェクトで変更してください:

function printDataOf(val)
{
   for (name in json)
   {
      if (name == val)
      {
          alert(json.name[0]);
          alert(json.name[1]);
      }
   }
}
于 2013-09-03T10:34:10.070 に答える
0

Json データをループし、比較して出力します。jqueryを使って...

  var data = {"Jack":["my1@email.com","US"],"Rob":["rob@email.com","UK"]}
var selecteVal="Jack";

$.each(data,function(key,index){
       if (key==selecteVal){
            alert(data[key][0])
             alert(data[key][1])
            }    
       });

JSFiddleを参照してください

于 2013-09-03T10:46:26.023 に答える
0

これはうまくいくはずです。

    function check( json_obj ) 
{
    return json_obj[0] == 'Jack'
}

jquery を使用している場合は、これも試してください。

json_obj = jQuery.parseJSON( json_obj.responseText );

実際に何が得られたかを調べるには、firebug のデバッガーを使用します

于 2013-09-03T10:32:34.013 に答える