关于json问题救急。
由于特定需要,把语言包写到数据库中,然后从数据库中读取出来生成json对象,而另一个封装的函数则需要使用其中一个值。
例:
  <script>
    function fn(options){
for(var e in options.buttons){
alert(e + " : " + options.buttons[e].id);
}
} var Langs = {PopupOK: '确定', PopupGiveup: '放弃', PopupCancel: '取消'};
fn({
buttons: {
Langs.PopupOK : {
id: 'btnOk',
className: 'css'
}
}
});
  </script>
以上Langs.PopupOK 有问题,如果换成"确定"则可以,但我不能写死,如何达到我要求? 急.....

解决方案 »

  1.   

      <script type="text/javascript">
        function fn(options){
            for(var e in options.buttons){
                alert(e + " : " + options.buttons[e].id);
            }
        }    var Langs = {PopupOK: '确定', PopupGiveup: '放弃', PopupCancel: '取消'};
    var paras = {}
    for(var o in Langs){
    paras[Langs[o]] = {id:o, className:'css'}
    }
        fn({
            buttons: paras
        });
      </script>
      

  2.   

    <script>
        function fn(options){
            for(var e in options.buttons){
                alert(e + " : " + options.buttons[e].id);
            }
        }    var Langs = {PopupOK: '确定', PopupGiveup: '放弃', PopupCancel: '取消'};
        var obj = {buttons: {}};
        obj.buttons[Langs.PopupOK] = {
            id: 'btnOk',
            className: 'css'
        };
        fn(obj);
    </script>
    不过我觉得如果用ID来做键会比较好
    <script>
        function fn(options){
            for(var e in options.buttons){
                alert(e + " : " + options.buttons[e].text);
            }
        }    var Langs = {PopupOK: '确定', PopupGiveup: '放弃', PopupCancel: '取消'};
        fn({
            buttons: {
                btnOk : {
                    text: Langs.PopupOK,
                    className: 'css'
                }
            }
        });
    </script>
      

  3.   


    <script>
      //var Langs = {PopupOK: '确定', PopupGiveup: '放弃', PopupCancel: '取消'};
      var Langs={
                  PopupOK:    {name:'确定' ,id: 'btnOk',    className: 'css'},
                  PopupGiveup:{name:'放弃' ,id: 'btnStop',  className: 'css'},
                  PopupCancel:{name:'取消' ,id: 'btnCancel',className: 'css'},
                }  alert(Langs.PopupOK.id)
      alert(Langs.PopupOK.name)
      alert(Langs.PopupOK.className)</script>
      

  4.   


    <script type="text/javascript">
        function fn(options){
            for(var e in options.buttons){
                alert(e + " : " + options.buttons[e].id);
            }
        }    var Langs = {PopupOK: '确定', PopupGiveup: '放弃', PopupCancel: '取消'};

    var obj = {};
    obj[Langs.PopupOK] = {
    id: 'btnOk',
    className: 'css'
    };

        fn({
            buttons: obj
        });
    /*
        fn({
            buttons: {
                Langs.PopupOK : {
                    id: 'btnOk',
                    className: 'css'
                }
            }
        });
    */
    </script>
      

  5.   

    ZhangYaoxing、toury:
    封装的函数已经写好,不想改,所有语言文字不想定义在里面。谢谢mrshelly和各位,就用这种办法了。结账.....