我正在尝试使用返回的数据并将其传递给另一个 javascript 进行处理。底部代码有效。
var st1 = 'Florida';
var st = convert_state(st1, 'abbrev');
container.find("input[name='State']").val(st);
我尝试过使用:
var st1 = data.state;
var st = convert_state(st1, 'abbrev');
container.find("input[name='State']").val(st);
结果是错误的。我尝试删除引号。
var st1 = data.state.replace(/\"/g, "");
var st = convert_state(st1, 'abbrev');
container.find("input[name='State']").val(st);
结果相同>假
感谢您的浏览。
<script>
function convert_state(name, to) {
var name = name.toUpperCase();
var states = new Array({ 'name': 'Alabama', 'abbrev': 'AL' }, { 'name': 'Alaska', 'abbrev': 'AK' },
{ 'name': 'Arizona', 'abbrev': 'AZ' }, { 'name': 'Arkansas', 'abbrev': 'AR' }, { 'name': 'California', 'abbrev': 'CA' },
{ 'name': 'Colorado', 'abbrev': 'CO' }, { 'name': 'Connecticut', 'abbrev': 'CT' }, { 'name': 'Delaware', 'abbrev': 'DE' },
{ 'name': 'Florida', 'abbrev': 'FL' }, { 'name': 'Georgia', 'abbrev': 'GA' }, { 'name': 'Hawaii', 'abbrev': 'HI' },
{ 'name': 'Idaho', 'abbrev': 'ID' }, { 'name': 'Illinois', 'abbrev': 'IL' }, { 'name': 'Indiana', 'abbrev': 'IN' },
{ 'name': 'Iowa', 'abbrev': 'IA' }, { 'name': 'Kansas', 'abbrev': 'KS' }, { 'name': 'Kentucky', 'abbrev': 'KY' },
{ 'name': 'Louisiana', 'abbrev': 'LA' }, { 'name': 'Maine', 'abbrev': 'ME' }, { 'name': 'Maryland', 'abbrev': 'MD' },
{ 'name': 'Massachusetts', 'abbrev': 'MA' }, { 'name': 'Michigan', 'abbrev': 'MI' }, { 'name': 'Minnesota', 'abbrev': 'MN' },
{ 'name': 'Mississippi', 'abbrev': 'MS' }, { 'name': 'Missouri', 'abbrev': 'MO' }, { 'name': 'Montana', 'abbrev': 'MT' },
{ 'name': 'Nebraska', 'abbrev': 'NE' }, { 'name': 'Nevada', 'abbrev': 'NV' }, { 'name': 'New Hampshire', 'abbrev': 'NH' },
{ 'name': 'New Jersey', 'abbrev': 'NJ' }, { 'name': 'New Mexico', 'abbrev': 'NM' }, { 'name': 'New York', 'abbrev': 'NY' },
{ 'name': 'North Carolina', 'abbrev': 'NC' }, { 'name': 'North Dakota', 'abbrev': 'ND' }, { 'name': 'Ohio', 'abbrev': 'OH' },
{ 'name': 'Oklahoma', 'abbrev': 'OK' }, { 'name': 'Oregon', 'abbrev': 'OR' }, { 'name': 'Pennsylvania', 'abbrev': 'PA' },
{ 'name': 'Rhode Island', 'abbrev': 'RI' }, { 'name': 'South Carolina', 'abbrev': 'SC' }, { 'name': 'South Dakota', 'abbrev': 'SD' },
{ 'name': 'Tennessee', 'abbrev': 'TN' }, { 'name': 'Texas', 'abbrev': 'TX' }, { 'name': 'Utah', 'abbrev': 'UT' },
{ 'name': 'Vermont', 'abbrev': 'VT' }, { 'name': 'Virginia', 'abbrev': 'VA' }, { 'name': 'Washington', 'abbrev': 'WA' },
{ 'name': 'West Virginia', 'abbrev': 'WV' }, { 'name': 'Wisconsin', 'abbrev': 'WI' }, { 'name': 'Wyoming', 'abbrev': 'WY' }
);
var returnthis = false;
$.each(states, function (index, value) {
if (to == 'name') {
if (value.abbrev == name) {
returnthis = value.name;
return false;
}
} else if (to == 'abbrev') {
if (value.name.toUpperCase() == name) {
returnthis = value.abbrev;
return false;
}
}
});
return returnthis;
}
</script>
$.ajax({
"url": url,
"dataType": "json"
}).done(function (data) {
handleResp(data);
// Store in cache
cache[Zip] = data;
}).fail(function (data) {
if (data.responseText && (json = $.parseJSON(data.responseText))) {
// Store in cache
cache[Zip] = json;
// Check for error
if (json.error_msg)
errorDiv.text(json.error_msg);
}
else
errorDiv.text('Request failed.');
});
最佳答案
我已经用静态 json 尝试了上面的代码,它工作正常。看来从ajax收到的数据不符合预期。
我创建了一个 plunker 供您引用。
var data = {
"state" : "Florida"
}
var st1 = data.state;
var st = convert_state(st1, 'abbrev');
alert(st+"");
关于javascript - 使用另一个 javascript 返回的 json 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30672690/