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

115
Views
Leer un atributo html como una matriz usando Javascript/Jquery

Tengo la sensación de que esto debería ser simple

Tengo algo de html como este (no tengo control sobre el html)

 <div class="something" data-spec="['thing','another-thing','one-more-thing']">Stuff</div>

Estoy tratando de leer la especificación de datos como una matriz sin tener que dividirla en una cadena, dividirla y luego insertar los valores en una matriz.

Si hago esto:

 let elem = $('.something') let attr = elem[0].attributes['data-spec'] console.log(attr)

Vuelve:

 data-spec="['thing','another-thing','one-more-thing']"

¿Hay alguna manera de leer la especificación de datos como un objeto de matriz?

Gracias.

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

De lo contrario, diría JSON.parse() , pero dado que son comillas simples, no puede hacerlo directamente.

La opción horrible es eval() , pero creo que un término medio feliz (que podría romperse si hay otras comillas en la cadena) es

 const attrString = elem[0].attributes['data-spec']; // replace single quotes with double quotes for JSON parsing const attr = JSON.parse(attrString.replace(/'/g, '"'));
about 4 years ago · Juan Pablo Isaza Report

0

Intente reemplazar todas las comillas simples con comillas dobles y luego use JSON.parse

 const dataSpec="['thing','another-thing','one-more-thing']" JSON.parse(dataSpec.replace(/'/g, '"')) 

 const dataSpec = "['thing','another-thing','one-more-thing']" const array = JSON.parse(dataSpec.replace(/'/g, '"')) console.log(array);

about 4 years ago · Juan Pablo Isaza Report

0

No estoy seguro si puede hacer directamente lo que quiere, pero como solución puede usar una expresión regular para extraer todo entre comillas, ejemplo:

 var test = "data-spec=\"['thing','another-thing','one-more-thing']\""; var result = test.match(/(?<=\').*(?=\')/); console.log(result); //will log : Array [ "thing','another-thing','one-more-thing" ]

Nota: tal vez deba usar JSON.stringify(elem[0].attributes['data-spec']) para tener la misma cadena de "prueba" que tengo en mi ejemplo

about 4 years ago · Juan Pablo Isaza 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!