-1

怎么样了..

我试图在单击按钮时将字符串结果从 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)。

但是我需要将“区域名称”传递给函数 ShowMore(variable) 以列出该区域的所有成员(我不知道我是否解释得很好)。

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

区域名称上的空间是否有任何问题。

谢谢你的回答,问候

4

2 回答 2

1

试试这个

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

你有一个错字data[i].AREA+</button>"); 应该是data[i].AREA+"</button>");

还转义 "" 以便 data[i].AREA 将被读取为字符串

于 2013-08-28T05:09:57.293 回答
0

关于您的代码,您可以像下面这样...

$(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++)

于 2013-08-28T05:12:05.287 回答