Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eu preciso criar uma funcao que pegue todas as tags <h2> dentro da sessao <article>
Basicamente oq eu quero fazer eh gerar um índice de links ancoras dinamicamente para deixar logo no inicio da pagina e, assim o usuario acessar diretamente o topico de interesse.
Porem eu nao faço ideia por onde comecar essa função. Alguem pode me dar a direcao ??
imagino que devo pegar cada tag H2 e armazenar numa variavel. Porem nao sei como faço isso
Outro problema eh q vou precisar inserir a atributo id="#<h2>" tbm dinamicamente
nao sei se estou pensando certo ou se existe outras alternativas pra chegar nesse resultado. Mas qualquer esclarecimento ja ajuda
vlw>
3 horas atrás, Omar~ disse:
Para mim não ficou claro como deveria usar as informações dos elementos H2.
Então o que vou mostrar é um pequeno e simples exemplo de como capturar dados desses elemento
Então Omar, adoraria (se possível) fazer essa função em php por eu estar mais familiarizado com o PHP. Mas se for melhor fazer com javascript eu posso tentar.
Mas veja, o que eu quero fazer é basicamente isso:
/applications/core/interface/imageproxy/imageproxy.php?img=https://i.imgur.com/vkYBvke.png&key=faab2a84e6230bdd4c6229473e7cb12329fc6d3e3eb688db6f85e755e15988e2" />
Porém todas as Tag <h2> estão detro de:
<div class="article-content">
<h2>Título 1</h2>
<h2>Título 2</h2>
<h2>Título 3</h2>
</div>
Além disso, eu preciso incluir a âncora em cada tag <H2>, por exemplo:
<div class="article-content">
<h2 id="titulo1">Título 1</h2>
<h2 id="titulo2">Título 2</h2>
<h2 id="titulo3">Título 3</h2>
</div>
Pra poder criar o link âncora para cada tag H2 conforme na primeira imagem. Deu pra entender ? E por fim tudo deveria sair basicamente assim:
<ul>
<li><a href="#titulo1">Título 1</a></li>
<li><a href="#titulo2">Título 2</a></li>
<li><a href="#titulo2">Título 2</a></li>
</ul>
Javascript é a melhor maneira de resolver isso ? A página que estou trabalhando possui mais de 500 artigos e fazer isso manualmente é inviávelSim, pelo que deu para sacar você está obtendo dados vindo do banco.
Sendo assim esses dados estão em array, então basta usar o php para escrever os elementos
Exemplo (no caso $array seria um array obtido de dados do banco)
<?php
$array = [
0 => [
'titulo' => 'titulo1',
'conteudo' => 'bla bla bla'
],
1 => [
'titulo' => 'titulo2',
'conteudo' => 'bla bla bla'
],
2 => [
'titulo' => 'titulo3',
'conteudo' => 'bla bla bla'
]
];
$contagem = 0;
$lista = "<ul>";
foreach ($array as $v) {
$contagem ++;
$lista .= "<li><a href=\"#{$v['titulo']}\">Título {$contagem}</a></li>";
}
$lista .= "</ul>";
echo ($lista);
No caso percorro esse array buscando informações para completar a escritura dos elementos que desejo.
Perceba a situação, pois abordei em caso não houver um índice para capturar para escrever o número tipo titulo1... 2...
usei uma var que se alto incrementa a cada volta do loop.
>
Em 29/08/2018 at 11:07, Marcosvn disse:
Javascript é a melhor maneira de resolver isso ? A página que estou trabalhando possui mais de 500 artigos e fazer isso manualmente é inviável
Depende da situação, pois com ambos você pode escrever a página.
A diferença é que o PHP não pode manipular a página depois de carregada, e o javascript só consegue manipular depois que a página é carregada.
pode crê manu, puxar o array do banco de dados é mais prático. Vlww , abraço
Para mim não ficou claro como deveria usar as informações dos elementos H2.
Então o que vou mostrar é um pequeno e simples exemplo de como capturar dados desses elementos