访问javascript中的列表元素

I am getting this list from server(php):

["Ak-Bulak","Balykchy","Batken"]

how can i access it and put into selects options thru js, what i tried is:

for (var i in data) {
   $('#cities').append('<option>'+ data[i] +'</option>');
}

it putting every chars as one option: <option>[</option>, <option>"</option>...

how can i access each element here? not each char..

It seems that you don't have a list, you have a string. So first, parse that string:

var list = JSON.parse('["Ak-Bulak","Balykchy","Batken"]')

And then, loop over it as you already did, or without using keys:

for (var i=0; i<list.length; i++) {
    $('#cities').append('<option>'+ data[i] +'</option>');
}

You need to parse this string as JSON first.

var buffer = eval(data)
for (var i in buffer) {
    $('#cities').append('<option>'+ buffer[i] +'</option>');
}

But if you use eval() you must be sure that input data is consistent. updated.

If it's a var on your php page something like this would work

for (var i in <?php echo '["Ak-Bulak","Balykchy","Batken"]'; ?>) {
   $('#cities').append('<option>'+ i +'</option>');
}

Try this,

    var data='["Ak-Bulak","Balykchy","Batken"]';
    data=JSON.parse(data);


for (var i in data) {
   $('#cities').append('<option>'+ data[i] +'</option>');
 }

What about:

var data=<?php echo '["Ak-Bulak","Balykchy","Batken"]'; ?>;

for (var i in data) {
   $('#cities').append('<option>'+ data[i] +'</option>');
}