javascript - 将字符串(带空格 - 从json)传递给函数

时间:2013-08-28 04:57:25

标签: json string space

怎么回事......

我正在尝试将json的字符串结果传递给单击按钮时的函数,但我有一些问题。

这是我的HTML代码:

$(document).ready(function) {
...
   $.getJSON(url, {data...}, function result() {
       var data = eval(result);

       for (var i in data) {
          $("body").append("<button onclick='ShowMore("+data[i].AREA+")'>"+data[i].AREA+</button>");
       }

   });

});

function ShowMore(area){
   alert(area);
}

说明:

我的桌子上有一些公司区域(系统,营销,人力资源等 - 名称上有'空格'的许多区域)。

然后我有另一张属于每个区域的桌子(EMPLOYESS)。

但是我需要将'AREAs NAME'传递给ShowMore(变量)函数,以便与该区域的所有成员一起做一个列表(我不知道我是否解释得非常好)。

当我点击按钮时,我没有任何提醒..但是,当我更改 onclick =''功能时......(例如 onclick =“+ data [i] .CODAREA +“)结果警报良好( 11,14,19,20 .. )......

AREAs NAME上的空格是否存在任何问题。

感谢您的回答,问候

2 个答案:

答案 0 :(得分:1)

试试这个

$("body").append("<button onclick='alert(\""+data[i].AREA+"\")'>"+data[i].AREA+"</button>");

data[i].AREA+</button>");中有拼写错误 应为data[i].AREA+"</button>");

也会转义“”,以便将数据[i] .AREA读取为字符串

答案 1 :(得分:0)

关于你的代码,你可以像下面的scape ...

$(document).ready(function) {
...
   $.getJSON(url, {data...}, function result() {
       var data = JSON.parse(result);
       var btn = "";

       for (var i in data) {

          btn = "<button ";
          btn += "onclick='ShowMore(\'";
          btn += data[i].AREA;
          btn += "\')'>";
          btn += data[i].AREA;
          btn += "</button>";

          $("body").append(btn);
       }

   });

});

function ShowMore(area){
   alert(area);
}

但你可以用更快的方法来做到这一点......

$(document).ready(function) {
...
   $.getJSON(url, {data...}, function result() {
       var data = JSON.parse(result);
       var btn;

       for (var i in data) {

         btn = document.createElement("button");
         btn.innerText = data[i].AREA;

         document.body.appendChild( btn );

         btn.addEventListener( "click", function(){

              ShowMore( data[i].AREA);

         }, true);
       }

   });

});

function ShowMore(area){
   alert(area);
}

如果数据是数组,我认为最好使用for(var i = 0; i < data.length; i++)