0

我正在从 .aspx 页面调用 jquery 函数,如下所示

 <body onload="JavaScript:createPanels('[{a,b,c,d,e}]')">

在我的 jquery 中,我将函数定义为

function createPanels(requiredButtons) {
    var abc = JSON.stringify(requiredButtons)
    abc.each(function (key, value) {
        alert(value);
    });

}

现在的问题是我没有得到任何警报。

谁能指出我哪里出错了?

4

6 回答 6

1

那不是如何$.each使用的:

尝试这个:

$.each(abc, function (key, value) {
    alert(value);
});

它会提醒字符串中的每个字符。

于 2013-07-23T07:41:34.397 回答
1

那里有几个问题。

一个。这不是 JSON[{a,b,c,d,e}]

如果您真的想在 body 元素上执行此操作,那么可以这样做:

<body onload="JavaScript:createPanels('{&#34;posts&#34;: [{&#34;key&#34;:&#34;value&#34;}, {&#34;key&#34;:&#34;value&#34;}]}')">

这不是一个好主意,因此您可以在 jquery 页面加载处理程序中调用它:

$(document).ready(function(){
  //create the JSON object here
  //call the function here
}); 

湾。也改变你的脚本:

function createPanels(requiredButtons){
    var abc = JSON.parse(requiredButtons);
    $(abc).each(function (key, value) {
         alert(value);
    });
}
于 2013-07-23T07:49:00.410 回答
1

这不是有效的 JSON 格式。Json 格式如下:

 var obj = {
     "flammable": "inflammable",
      "duh": "no duh"
   };

然后使用如下:

 $.each( obj, function( key, value ) {
     alert( key + ": " + value );
  });

参考

于 2013-07-23T07:52:22.960 回答
0

感谢您的宝贵建议,我解决了这个问题

.aspx 页面

<body onload="JavaScript:createPanels('a,b,c,d,e')">

jQuery

function createPanels(requiredButtons) {
    var abc = requiredButtons.split(',');
    $.each(abc, function (key, value) {
        alert(value);
    });

}

于 2013-07-23T10:39:16.503 回答
0

"{a,b,c,d}" is not a object that's why your code is not working.

Second point is : Use jQuery.each() for iterating a collection.

Try to put it in this form :

var x= ['a','b','c','d','e'];
jQuery.each(x,function (key, value) {
        console.log(value);
});

It will return a,b,c,d,e as you want.

Here is the working demo

于 2013-07-23T08:00:57.220 回答
0

我喜欢 jQuery 和一切,但没有必要调用它来迭代数组。

abc.forEach( function (elem) {
    console.log(elem);
});

应该可以工作,一旦你整理了你的 JSON 东西

于 2013-07-23T08:12:45.403 回答