Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

394
Views
¿Cómo puedo guardar un valor en localStorage en una lista jquery generada dinámicamente, al mismo tiempo que genero un href para cada elemento?

Extraigo una lista de nombres de archivos de mi base de datos y los enumero dinámicamente con jquery. Se agregan al html como una lista desordenada. Quiero que cada elemento se vincule a mi página de detalles, pero también necesito la identificación del archivo para guardarlo en el almacenamiento local al hacer clic. es posible? ¿Solo necesito trabajar en mi sintaxis? Cualquier ayuda es apreciada.

función jquery:

 $(function() { var $files = $('#files'); $.ajax({ type: "GET", url: 'some url', data: {}, success: function(files) { $.each(files, function(i, file){ $files.append('<a href="details.html" onclick="localStorage.setItem("file", +file.id+)";>'+file.id+'</a>'); }); }, // Error handling error: function (error) { console.log(`Error ${error}`); } }); })

HTML

 <ul id="files"></ul>
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Tienes comillas dobles dentro de comillas dobles y algunos signos "más" aleatorios.

Cambie su código a esto, para usar una plantilla literal en su lugar: ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals )

 $files.append(`<a href="details.html" onclick="localStorage.setItem('file', '${file.id}')";>${file.id}</a>`);

El uso de plantillas de cadena le permitirá imprimir directamente el valor de una variable en la cadena con ${variableName}


Vaya, no entendí bien la pregunta y dejé esta respuesta sobre cómo almacenar en caché una lista en localStorage en caso de que alguien la necesite:

Antes de extraer de su base de datos, vea si existe en el almacenamiento local:

 $(function() { let storedFiles = window.localStorage.getItem('stored_files'); if(storedFiles !== null) { //found in local storage, use this: files = JSON.parse(storedFiles); //local storage is stored as a string, you have to convert back to an object //generate the list of files generateListOfFiles(files); } else { // not found in local storage, get from database $.ajax({ type: "GET", url: 'some url', data: {}, success: function(files) { //generate the list of files: generateListOfFiles(files); // now store the files back in local storage for next time! window.localStorage.setItem("stored_files", JSON.stringify(files)); // local storage should be stored as a string, as mentioned above }, // Error handling error: function (error) { console.log(`Error ${error}`); } }); } function generateListOfFiles(files) { $.each(files, function(i, file){ let $files = $('#files'); $files.append('<a href="details.html" onclick="localStorage.setItem("file", +file.id+)";>'+file.id+'</a>'); }); } });
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!