Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FabianoSouza

Recuperar ID de elemento pai ao clicar em filhos

Recommended Posts

Como recupero o ID da DIV mesmo clicando em qualquer elemento dentro dela?

No caso tenho UL e LI como elementos filhos da DIV.

Lembrando que a quantidade e tipos de elementos dentro da DIV podem variar.

 <DIV id="X">

<ul>

<li>Icone</li><li>Título</li>

<li>Subtítulo</li>

</ul>

</DIV> 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pega pelo parent do objeto que você está clicando, no seu caso o "li"

 


<DIV id="X">
  <ul>
    <li>Icone</li>
    <li>Título</li>
    <li>Subtítulo</li>
  </ul>
</DIV>
<DIV id="Y">
  <ul>
    <li>Icone</li>
    <li>Título</li>
    <li>Subtítulo</li>
  </ul>
</DIV>

 


$("li").click(function(){
var meuid = $(this).parents('div').attr('id');
alert(meuid);

});

 

PS. to usando jquery se você estiver usando javascript nativo procure o equivalente, ou baixe o jquery e adicione no seu html

Compartilhar este post


Link para o post
Compartilhar em outros sites
9 minutos atrás, Sergio S. F. Pereira disse:

Pega pelo parent do objeto que você está clicando, no seu caso o "li"

 

 


<DIV id="X">
  <ul>
    <li>Icone</li>
    <li>Título</li>
    <li>Subtítulo</li>
  </ul>
</DIV>
<DIV id="Y">
  <ul>
    <li>Icone</li>
    <li>Título</li>
    <li>Subtítulo</li>
  </ul>
</DIV>

 

 

 


$("li").click(function(){
var meuid = $(this).parents('div').attr('id');
alert(meuid);

});

 

 

PS. to usando jquery se você estiver usando javascript nativo procure o equivalente, ou baixe o jquery e adicione no seu html


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou testar (estou usando JS puro).

 

Mas de todo modo preciso prever situações em que existam elementos diferentes de LI.
A DIV é o container, então pode acomodar outros tipos de elementos.

Quero que independentemente do tipo e quantidade de elementos existentes dentro da DIV, seja sempre possível recuperar o ID da DIV pai.

 

Acho que teria que fazer um loop "de dentro pra fora" até que o element Parent fosse uma DIV.

Mas aí surge outro problema: precisaria fazer com que qualquer elemento clicado (dentro da DIV) disparasse o loop...

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom neste caso você cria a div com id container como você falou e pega a parent do evento do click, só uma pequena alteração do exemplo anterior.

 


$('#container').on('click', function (event) {
  var meuid = $(event.target).parents('div').attr('id');
      alert(meuid);
 });

 

Desse jeito aí ele vai pegar o id da div de qualquer elemento dentro dela

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Carlos Web Soluções Web
      Olá...
      Estou tentando fazer o seguinte !!
      Listando dados em tabela !!
      Gostaria que....se na listagem houver 4 linhas...indepedente de seu número de ID, faça a listagem em ID ser em ordem 1 2 3 4 !!
      Exemplo...se tiver uma listagem de dados que está em ID 1 3 3...faça ficar 1 2 3 !!

       
      echo "<table class='tabela_dados' border='1'> <tr> <td>ID</td> <td>Nome Empresa</td> <td>Responsável</td> <td>Telefone 1</td> <td>Telefone 2</td> <td>E-mail 1</td> <td>E-mail 2</td> <td>Endereço</td> <td>CEP</td> <td>Bairro</td> <td>AÇÃO 1</td> <td>AÇÃO 2</td> </tr> "; $sql = "SELECT ID FROM usuarios_dados WHERE Usuario='$usuario'"; $result = $conn->query($sql); $num_rows = $result->num_rows; $Novo_ID = 1; for ($i = 0; $i < $num_rows; $i++) { $registro = $result -> fetch_row(); $sql2 = "UPDATE usuarios_dados SET ID='$Novo_ID' WHERE ID='$Novo_ID'"; $result2 = $conn->query($sql2); $Novo_ID++; } $sql = "SELECT * FROM usuarios_dados"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo "<tr> <td>$row[ID]</td> <td>$row[Nome_Empresa]</td> <td>$row[Responsavel]</td> <td>$row[Telefone_1]</td> <td>$row[Telefone_2]</td> <td>$row[Email_1]</td> <td>$row[Email_2]</td> <td>$row[Endereço]</td> <td>$row[CEP]</td> <td>$row[Bairro]</td> <td> <form method='post' action='Editar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='EDITAR'> </form> </td> <td> <form method='post' action='Deletar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='DELETAR'> </form> </td> </tr> "; } } else { echo "0 results"; } $conn->close();  
    • Por Carlos Antoliv
      Olá, senhores.
       
      Sei que existem diversos tópicos por aí sobre esse assunto, contudo, não consegui solucionar o problema, mesmo depois de 1 dia tentando fazer algo até simples.
       
      Seguinte, estou pegando o id de um produto e tentando jogar em outra tabela, pelo checkbox.
      ex:
       
      id    produto
      23   lapis
      43  caneta
       
      pelo checkbox, a pessoa escolhe o produto e adicona em uma lista, que é outro banco. Se pessoa selecionar mais de 1 item da lista, o laço só envia para o banco apenas 1 item de qualquer forma.
       
      Vou postar o Código:
       
      Código do INSERT:
       
          $check1 = (isset($_POST["check"]) && $_POST["check"] != null) ? $_POST["check"] : "";     foreach($check1 as $check){                         $stmt = $conexao->prepare("INSERT INTO tb_itemProdKit (fk_tb_kit, fk_usuarios, fk_tb_produtos) VALUES (?, ?, ?)");                  $stmt->bindParam(1, $nome_prod);         $stmt->bindParam(2, $idSessao);         $stmt->bindParam(3, $check);                if ($stmt->execute()) {             if ($stmt->rowCount() > 0) {                 echo "Dados cadastrados com sucesso!";                 $id_prod = null;                 $nome_prod = null;                 $idSessao = null;                 $check = null;                             header("Location: item-produto-kit.php");exit;                              } else {                 echo "Erro ao tentar efetivar cadastro";             }         } else {                throw new PDOException("Erro: Não foi possível executar a declaração sql");         }     } } } catch (PDOException $erro) {         echo "Erro: " . $erro->getMessage();     }    
       
      Agora o código do checkbox:
       
             if ($stmt->execute()) {                 while ($rs = $stmt->fetch(PDO::FETCH_OBJ)) {                       echo "<tr>";                     echo "<td><input type='checkbox' name='check[]' id='check' value='".$rs->id_prod."'</td><td class='lista_usuario'>".$rs->nome_produto."</td><td class='lista_usuario'>".$rs->desc_prod."</td><td class='lista_usuario'>".$rs->peso_liq_prod                                ."</td>"                                ;                     echo "</tr>";                 }             }else {                 echo "Erro: Não foi possível recuperar os dados do banco de dados";             }     } catch (PDOException $erro) {         echo "Erro: ".$erro->getMessage();     }     echo "</form>"    
          ?>  
       
       
      Está cadastrando apenas 1 item e não múltiplos itens.
       
      abço!!
       
       
       
       
       
    • Por douglas79
      Bom dia,
       
      Estou seguindo uma vídeo aula no Youtube e o instrutor lá colocou uma sequência de div's (seja id ou class), o seletor background não funciona.

      Vou postar o código até o momento:
       
      @charset "utf-8";
       
      body, ul{padding:0;margin:0;background: #e2e2e2;list-style: none;}
      #geral{overflow: hidden;}
      #geral #topo{width:1018px;margin:0 auto;overflow: hidden;}
      #geral #topo #logo, #menuTopo{float:left;width:400px;}
      #geral #topo #logo{background:#ccc;}
      #geral #topo #menuTopo{}
      #geral #topo #menuTopo li{float:left;padding:5px;}

      Alguém pode me tirar essa dúvida???
      Desde já, agradeço!
    • Por Gildvan Arley
      <?php $consulta = $conexao->query('SELECT * FROM nomevip '); while ($exibir=$consulta->fetch(PDO::FETCH_ASSOC)){ ?> Olá
      Como posso remover 13 ids desse SELECT do 1 ao 13 
    • Por denys017
      Bom dia, boa tarde ou boa noite, bem o que quero fazer é o seguinte eu salvei o nome de algumas imagens no banco e quero ligar elas a um id de usuario, para que na hora de exibir as imagens só exiba as imagens que estejam ligadas/cadastradas com aquele usuario, resumindo quero saber como faço para ligar os campos das imagens cadastrada ao campo do usuario no sql.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.