Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

114
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda