jquery $cada () para objetos
<script>
$(document).ready(function() {
var data = { "programs": [ { "name":"zonealarm", "price":"500" }, { "name":"kaspersky", "price":"200" } ] };
$.each(data.programs[0], function(key,val) {
alert(key+val);
});
});
</script>
Este código recupera los primeros datos. name:zonealarm
y price:500
. ¿Cómo puedo recuperar todos los datos del objeto? Intenté $.each(data.programs, function(key,val)
pero no funcionó. ¿Debería ponerlo en un bucle?
3 answers
$.each()
funciona tanto para objetos como para matrices:
var data = { "programs": [ { "name":"zonealarm", "price":"500" }, { "name":"kaspersky", "price":"200" } ] };
$.each(data.programs, function (i) {
$.each(data.programs[i], function (key, val) {
alert(key + val);
});
});
...y dado que obtendrá el elemento array actual como segundo argumento:
$.each(data.programs, function (i, currProgram) {
$.each(currProgram, function (key, val) {
alert(key + val);
});
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-08 20:03:12
De hecho, está pasando el primer elemento de datos a la función each.
Pasar datos.programas a la función each en su lugar. Cambie el código a la siguiente:
<script>
$(document).ready(function() {
var data = { "programs": [ { "name":"zonealarm", "price":"500" }, { "name":"kaspersky", "price":"200" } ] };
$.each(data.programs, function(key,val) {
alert(key+val);
});
});
</script>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-01 21:42:22
Básicamente necesitas hacer dos bucles aquí. El que ya está haciendo es iterar cada elemento en el elemento 0th array.
Tienes programas: [{...}, {...} ] so programs [0] es { "name": "zonealarm", "price": "500" } Así que su bucle está pasando por eso.
Se podría hacer un bucle externo sobre el array
$.each(data.programs, function(index) {
// then loop over the object elements
$.each(data.programs[index], function(key, value) {
console.log(key + ": " + value);
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-30 18:23:19