Tengo dos elementos en esta matriz.

$.each(data.recalls,function(i) {
  var recall = data.recalls[i].nnaId;
  var description = data.recalls[i].remedyDescription;
  console.log(recall);
  console.log(description);         
  $('textarea[name="notes"]').val(recall+" - "+description);
});

console.log() devuelve lo que necesito, pero cuando solo puedo mostrar un resultado.

Con - console.log()

recall - 450
description - description-1

recall - 747
description - description-2

Con - $ ('textarea [name = "notes"]'). val (recordar + "-" + descripción);

solo un resultado

450 - description-1
-1
Robert 12 may. 2016 a las 16:20

3 respuestas

La mejor respuesta

Eso es porque está asignando, no agregando los valores

var result = "";
$.each(data.recalls,function(i) {
  var recall = data.recalls[i].nnaId;
  var description = data.recalls[i].remedyDescription;
  console.log(recall);
  console.log(description);         
  result += recall+" - "+description + " ";
});
$('textarea[name="notes"]').val(result);
1
gurvinder372 12 may. 2016 a las 13:23

Esto se debe a que recall y description no son matrices. Además, debe hacerlo de una manera diferente. Digamos:

$.each(data.recalls, function(i) {
  var recall = data.recalls[i].nnaId;
  var description = data.recalls[i].remedyDescription;
  console.log(recall);
  console.log(description);
  $('textarea[name="notes"]').val($('textarea[name="notes"]').val() + recall + " - " + description);
});

Utilice array s, variable global o append los valores, como lo he hecho anteriormente.

1
Praveen Kumar Purushothaman 12 may. 2016 a las 13:23

La respuesta anterior es correcta. Pero muestra todos los datos en una sola línea. Si desea mostrar un resultado uno por uno.

Simplemente agregue "\ n" como a continuación

result += recall+" - "+description + "\n";

0
shanmugasuresh.P 12 may. 2016 a las 13:50