2013-07-23 167 views
0

不工作我打电话从.aspx页面中一个jQuery功能在我的jQuery如下每个循环中的jQuery

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

我有函数定义为

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

} 

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

有没有人能指出我哪里错了?

+3

如果你想打电话'each'这样说,这不得不是一个jQuery对象,所以'$(ABC).each'。否则,你会调用'$ .each(abc,...)'。它在文档中。 – guessimtoolate

+0

如果你正在寻找的JavaScript [数组迭代器(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach),你需要使用'.forEach ' –

回答

1

那不是如何$.each将用于:

试试这个:

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

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

+0

我试过,但现在它让我警觉的每一个字符“{A,b,C,d}”,包括引号和逗号和括号。我只想警惕b c和d – Gautam

1

那里有几个问题。

a。这不是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 
}); 

b。更改脚本:

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

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

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

然后如下用途:

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

Reference

0

“{A,B,C,d}” 不是一个对象,这就是为什么你的代码不管用。

第二点是:使用jQuery.each()来迭代集合。

试图把它以这种形式:

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

它会返回一个,B,C,d,E只要你想。

这里是工作demo

0

我lurve jQuery和万能的,但没有必要调用它遍历数组。

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

应该工作,一旦你收拾你的东西JSON

0

感谢您的宝贵suggessions 我解决了这个问题,因为

.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); 
    }); 

}