1
resposta

[Projeto] Projeto Pessoal: Não consigo entender o que há de errado.

Tenho um projeto pessoal no Github de um Vade Mecum (aquele compêndio de leis que todo advogado e estudante de direito) em html. Estou tentando criar uma funcionalidade para buscar os artigos de cada lei e para isso estou tentando acrescenter IDs em cada artigo. No entanto, por algum motivo isso não está funcionando.

Um trecho do HTML:

<p id="titulo">Lei de Introdução às Normas do Direito Brasileiro</p>

<p id="subtit"><a href="https://www.planalto.gov.br/ccivil_03/decreto-lei/del4657.htm">Decreto-Lei nº 4.657, de 4 de Setembro de 1942.</a></p>

<p id="ementa">Lei de Introdução às normas do Direito Brasileiro.</p>

<p>O <strong>Presidente da República</strong>, usando da atribuição que lhe confere o artigo 180 da Constituição, decreta:</p>

<p><span class="artigo">Art. 1º.</span> Salvo disposição contrária, a lei começa a vigorar em todo o país quarenta e cinco dias depois de oficialmente publicada.</p>

<p>§ 1º. Nos Estados, estrangeiros, a obrigatoriedade da lei brasileira, quando admitida, se inicia três meses depois de oficialmente publicada.</p>

<p>§ 2º. (Revogado pela Lei nº 12.036, de 2009).</p>

<p>§ 3º. Se, antes de entrar a lei em vigor, ocorrer nova publicação de seu texto, destinada a correção, o prazo deste artigo e dos parágrafos anteriores começará a correr da nova publicação.</p>

<p>§ 4º. As correções a texto de lei já em vigor consideram-se lei nova.</p>

<p><span class="artigo">Art. 2º.</span> Não se destinando à vigência temporária, a lei terá vigor até que outra a modifique ou revogue.</p>

<p>§ 1º. A lei posterior revoga a anterior quando expressamente o declare, quando seja com ela incompatível ou quando regule inteiramente a matéria de que tratava a lei anterior.</p>

<p>§ 2º. A lei nova, que estabeleça disposições gerais ou especiais a par das já existentes, não revoga nem modifica a lei anterior.</p>

<p>§ 3º. Salvo disposição em contrário, a lei revogada não se restaura por ter a lei revogadora perdido a vigência.</p>

<p><span class="artigo">Art. 3º.</span> Ninguém se escusa de cumprir a lei, alegando que não a conhece.</p>

O JavaScript:

const artigos = document.querySelectorAll(".artigo");

artigos.forEach(artigo => {
    let numeroArtigo = artigo.textContent;
    numeroArtigo = numeroArtigo.replace(/\./g, "");
    numeroArtigo = numeroArtigo.replace(/ /g, "");
    numeroArtigo = numeroArtigo.replace("º", "");
    numeroArtigo = numeroArtigo.replace(/-/g, "");
    numeroArtigo = numeroArtigo.toLowerCase();
    console.log(numeroArtigo)
    artigo.id = numeroArtigo;
});

O repositório do projeto está hospedado em https://github.com/RenanSantos7/Vade-Mecum

1 resposta

Olá! Tudo ok contigo?

Peço minhas mais sinceras desculpas pela demora em obter um retorno!

O seu código parece estar no caminho certo para criar IDs a partir do conteúdo de cada artigo, mas é importante revisar cada etapa para garantir que não haja erros. Parece que você está removendo pontos, espaços, símbolos "º" e traços para criar IDs consistentes e amigáveis. Também está convertendo tudo em minúsculas para evitar problemas de sensibilidade a maiúsculas e minúsculas. Isso é um bom começo.

Entretanto, é necessário considerar possíveis problemas que podem estar ocorrendo:

  1. Seleção de Elementos: Verifique se a seleção dos elementos com a classe "artigo" está realmente funcionando. Para isso, você pode adicionar um console.log(artigos) logo após a linha const artigos = document.querySelectorAll(".artigo"); para verificar se os elementos estão sendo corretamente capturados.

  2. Tratamento de Texto: A sequência de operações que você está aplicando para transformar o texto em um ID pode estar causando resultados inesperados. Certifique-se de que o resultado após todas essas substituições realmente se torna um ID válido. Por exemplo, verifique se o texto "Art. 1º." está sendo transformado em "art1" como o esperado.

  3. Console Log: Você está usando console.log(numeroArtigo) para exibir o ID gerado no console. Isso é ótimo para depurar e verificar se os IDs estão sendo gerados conforme o esperado. Certifique-se de abrir o console do navegador ao visualizar a página para ver se os IDs estão sendo logados corretamente.

  4. Injeção de IDs: Após verificar as etapas acima, verifique se os IDs estão realmente sendo injetados nos elementos HTML. Você pode inspecionar o código-fonte da página no navegador para ver se os IDs foram atribuídos corretamente aos elementos "artigo".

  5. Link entre JavaScript e HTML: Verifique se o JavaScript está sendo carregado e executado corretamente na página HTML. Para isso, você pode adicionar um console.log("Script carregado!") no início do arquivo JavaScript para confirmar que o script está sendo executado.

  6. Eventos de Carregamento: Certifique-se de que o JavaScript esteja sendo executado após o carregamento completo da página. Você pode envolver todo o código JavaScript em um evento DOMContentLoaded para garantir que o código seja executado apenas após o carregamento completo da página. Por exemplo:

document.addEventListener("DOMContentLoaded", function() {
    // Seu código JavaScript aqui
});
  1. Erros de Sintaxe: Verifique o console do navegador para ver se há erros de sintaxe ou outros erros que podem estar impedindo a execução do seu código.

  2. Caminho para o Script: Certifique-se de que o caminho para o seu arquivo JavaScript está correto no arquivo HTML. Se estiver incorreto, o navegador não conseguirá encontrar o arquivo e o script não será executado.

Se você já verificou todos esses pontos e ainda assim o problema persiste, é possível que haja outras questões que precisam ser investigadas mais a fundo. Caso você ainda não tenha feito isso, aconselho a consultar a guia de desenvolvedor do seu navegador para ver se há mensagens de erro específicas que possam indicar o problema.

Além disso, recomendo que você explore o repositório do projeto que você compartilhou no GitHub. Verifique se o código JavaScript está sendo corretamente vinculado à página HTML e se não há outros conflitos ou problemas no projeto como um todo.

Espero que essas dicas ajudem a resolver o problema que você está enfrentando. Lembre-se de que a depuração é uma parte essencial do desenvolvimento, e muitas vezes pequenos detalhes podem causar grandes diferenças no funcionamento do código. Se precisar de mais ajuda ou esclarecimentos sobre algum ponto específico, fique à vontade para perguntar.

Espero que tenha te ajudado, abraços e bons estudos!