Tengo una llamada $.getJSON que devuelve una lista de publicaciones de AzureDB. Dentro de esto, hay un bucle $.each y esto genera HTML para cada publicación. Necesito acceder a la identificación única para cada una de estas publicaciones.
El ID único se genera así:
// inside the $.each loop noSpecialCharPostID = val["id"].slice(0, -1);Esto luego se asigna a ID así (también dentro del bucle):
items.push('<input type="text" id="commentContent' + specialCharPostID + '" placeholder="Add A Comment..."></input>');Esto asignó la ID correcta a la publicación de esta manera:
Identificaciones correctas asignadas
Luego tengo la función que agrega un comentario y para esto, necesito leer cada una de estas ID. Utilizo la variable specialCharPostID para hacer esto, pero el problema es que specialCharPostID contiene la ID de la última publicación y no puedo acceder a ninguna ID de publicación anterior a la última.
La función para agregar un comentario debe ser:
function submitNewComment() { // clear existing comments to avoid duplicating allComments = []; // Create a form data object addCommentData = new FormData(); console.log(specialCharPostID); // Get form variables and append them to the form data object addCommentData.append('commentContent', $("#commentContent" + << POST ID >>).val()); addCommentData.append('id', newCommentID); addCommentData.append('postID', $("#postComment" + << POST ID >>).val()); addCommentData.append('userID', loggedUserID); addCommentData.append('userName', loggedUserName); // Check comment data for (var pair of addCommentData.entries()) { console.log(pair[0] + ', ' + pair[1]); } } El problema es que si hago clic en el botón Agregar comentario en la publicación 1 (id = 1), pero tengo 2 publicaciones, << POST ID >> = 2 y no 1
¡He probado una matriz pero no he conseguido que funcione! Alguien ayuda!
Lo que sea que llame a submitNewComment debe pasar esa información. Espero que su botón Agregar comentario tenga un controlador onclick que llame a submitNewComment.
Una forma de abordar esto es averiguar la ID en el controlador onclick, en cuyo caso comenzaría su función de esta manera:
function submitNewComment(specialCharPostID)Alternativamente, el evento de clic se pasa de forma predeterminada. Prueba esto:
function submitNewComment(e) { console.log(e);Verá que el evento "e" tiene mucha información útil, incluido e.currentTarget, que podría tener su ID de publicación como atributo.
No veo esta parte de tu código. Si está generando un controlador onclick (o similar) para cada elemento, el primer enfoque es más fácil: agregue el specialCharPostID como parámetro.
Intente usar una variable que tenga valor = 0, como var x = 0, luego en el bucle for usando el valor x en la identificación de ese comentario y luego auméntelo en 1 usando x++ dentro del bucle. ¡Entonces tendrás comentarios con números únicos! ¡Pídeme más ayuda!