我有以下格式的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
我该怎么做?
答案 0 :(得分:1)
onchange函数将无法接收实际值。您可以传递选择对象(如'this')。
<select onchange="printDataOf(this)">
<option/>
<option value="Jack">Jack</option>
<option value="Rob">Rob</option>
</select>
现在在处理程序中,您可以获取实际选定的值并显示所需的数据。
var json_obj = {"Jack":["my1@email.com","US"],"Rob":["rob@email.com","UK"]};
function printDataOf(val){
var Mval = $(val).val();
alert(json_obj[Mval][0]);
alert(json_obj[Mval][1]);
}
检查json对象中是否存在Mval是明智的。如果它不存在,您将收到错误。我没有这样做,以保持简单。
这是一个有效的example。
答案 1 :(得分: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);
}
答案 2 :(得分:0)
这应该有用。
function check( json_obj )
{
return json_obj[0] == 'Jack'
}
如果你正在使用jquery,也可以试试这个:
json_obj = jQuery.parseJSON( json_obj.responseText );
要检查你真正得到的东西,请使用firebug的调试器
答案 3 :(得分:0)
尝试此操作,使用您的实际对象更改json
:
function printDataOf(val)
{
for (name in json)
{
if (name == val)
{
alert(json.name[0]);
alert(json.name[1]);
}
}
}
答案 4 :(得分:0)
这应该可以满足您的需求,
var result = {"Jack":["my1@email.com","US"],"Rob":["rob@email.com","UK"]};
function printDataOf(val){
var data = JSON.parse(result);
var selected = data[val];
var selected_arr = selected.split(',');
//now if selectd value is Jack
alert(selected_arr[0]) // should alert my1@email.com
alert(selected_arr[1]) // should alert US
}
答案 5 :(得分:0)
for (key in jsonobject) {
alert(jsonobject[val][0];
alert(jsonobject[val][1];
alert(jsonobject[val][2];
}
答案 6 :(得分: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
答案 7 :(得分:0)
试试这个。
var data = {"Jack":["my1@email.com","US"],"Rob":["rob@email.com","UK"]}
var selecteVal="Jack";
if(typeof(data[selecteVal])!='undefined'){
alert(data[selecteVal][0]);//my1@email.com
alert(data[selecteVal][1]);//US
}
<强> Demo 强>