用eval() 函数计算字符串
前几天做项目遇到一个很简单的问题。
将美国各州的全称通过javascript改成缩写,本以为用JSON文本可以很轻松的解决,却碰到一个麻烦。
本想这么写就行了
varshortname={"Alabama":"AL","Alaska":"AK","American_Samoa":"AS"}$('.table_cell_countya').each(function(){state_name=$(this).html();$(this).html(shortname.state_name.replace("",'_'));});
结果发现JSON根本没有这样的语法:
shortname.state_name.replace("",'_')
这个时候就要用到 eval()
w3cschool上的例子非常简单:
document.write(eval("2+2"))
就是对string进行javascript的计算,是不是感觉这样的函数并没有什么用。
那么接着看下面
在这里我们就要将JSON获取值的语法用string的方式写出来
"shortname."+state_name.replace("",'_')
这样用eval()就可以执行这个表达式了
放到整个代码中去:
varshortname={"Alabama":"AL","Alaska":"AK","American_Samoa":"AS"}$('.table_cell_countya').each(function(){state_name=$(this).html();$(this).html(eval("shortname."+state_name.replace("",'_')));});
成功啦!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。