Jump to content
mamotinho

Erro ao chamar div usando style via javascript

Recommended Posts

Oii, gostaria de pedi a  ajuda de vocês que entende melhor de javascript, estou tentando clica em um item no meu site para ser exibido sobre a página uma div que está escondido porém está dando erro no javascript, segue abaixo o erro e o código JS utilizado.
 

cabaldark.js:25 Uncaught TypeError: Cannot read property 'style' of null
    at abrirDesc (cabaldark.js:25)
    at HTMLDivElement.onclick (CashIndex.php?v1=1&v2=C13FC8F97845403A9C62BB277C614590:52)
abrirDesc @ cabaldark.js:25
onclick @ CashIndex.php?v1=1&v2=C13FC8F97845403A9C62BB277C614590:52


AQUI É O CÓDIGO JS QUE ESTÀ A FUNÇÃO.

 

function abrirSub(id) {
	if(document.getElementById('sub'+id).style.display=="block"){
		var test = document.getElementsByClassName("submenu");
		for(i = 0; i < test.length; i++){
			document.getElementsByClassName('submenu')[i].style.display='none';
		}
	}else{
		var test = document.getElementsByClassName("submenu");
		for(i = 0; i < test.length; i++){
			document.getElementsByClassName('submenu')[i].style.display='none';
		}
		document.getElementById('sub'+id).style.display="block";
	}
}
function mensagemClose(){
	document.getElementsByClassName('mensagem')[0].style.display='none';
}
function detalhesClose(){
	var test = document.getElementsByClassName("detalhes");
	for(i = 0; i < test.length; i++){
		document.getElementsByClassName('detalhes')[i].style.display='none';
	}
}
function abrirDesc(id){
	if(document.getElementById('detalhes'+id).style.display=="block"){
		var test = document.getElementsByClassName("detalhes");
		for(i = 0; i < test.length; i++){
			document.getElementsByClassName('detalhes')[i].style.display='none';
		}
	}else{
		var test = document.getElementsByClassName("detalhes");
		for(i = 0; i < test.length; i++){
			document.getElementsByClassName('detalhes')[i].style.display='none';
		}
		document.getElementById('detalhes'+id).style.display="block";
	}
}

 

download.png

Share this post


Link to post
Share on other sites

Isso ocorre quando tenta manipular um elemento inexistente.

do caso vamos ao questão:

<div id="detalhesExemplo">detalhes</div>

<button onclick="exemplo('Teste')">Executar</button>

<script>
    function exemplo(id) {
        /*
         * Note que como parâmetros estamos enviando a string "Teste"
         * Logo a consulta no DOM será pelo elemento #ID "detalhesTeste"
         * No entanto o único elemento existente é "detalhesExemplo"
         */
        var A = document.getElementById('detalhes' + id); // O resultado disso será "NULL"
        A.style.display = 'none'; // Segue o erro de manipulação por "A" ser null
    }
</script>

 

Share this post


Link to post
Share on other sites

Estou abrindo a web no IE e está agora dando o seguinte erro:
O Objeto não oferece suporte á propriedade ou método 'getElementsByClassName'


No Chrome funciona normalmente. mais no IE não está tendo suporte alguem me ajuda :(

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Adriano Costa
      Fala galera!!!
      Eu sou novo na programação e estou precisando de uma ajuda, estou tentando fazer um for dentro dos scriplets mas esta dando erro. É a parte do read do meu crud. Quando eu aço o for através da camada controller ele funciona, mas na pagina jsp ele da um erro.
       
      <%@ page language="java" contentType="text/html; charset=utf-8"
          pageEncoding="utf-8"%>
      <%@page import="model.JavaBeans"%>
      <%@page import="java.util.ArrayList"%>  
      <%
          ArrayList<JavaBeans> lista = (ArrayList<JavaBeans>)request.getAttribute("contatos");
          for (int i = 0; i < lista.size(); i++){
              out.print(lista.get(i).getIdlista());
          }
      %>
       
      <!DOCTYPE html>
      <html>
      <head>
      <meta charset="utf-8">
      <title>Lista de Tarefas</title>
      <link rel="stylesheet" href="css/styles.css">
      </head>
      <body>
          <div id= "login-container">
              <h1>Lista de Tarefas</h1>
              <table>
                  <thead>
                      <tr>
                          <th>Código</th>
                          <th>Titulo</th>
                          <th>Descrição</th>
                          <th>Data</th>
                          <th>Status</th>
                          <th>Prioridade</th>
                      </tr>
                  </thead>
                  <tbody>
                      
                  </tbody>
              </table>
              <form name="frmContato" action="listarTarefa">
                  
                  <input type="submit" value="Cadastrar" onclick="validar()">
              </form>
              
          </div>
          <script src="scripts/validador.js"></script>    
      </body>
      </html>
       
      E esse é o erro
       
      HTTP Status 500 – Internal Server Error
      Type Exception Report
      Message An exception occurred processing [/listaTarefas.jsp] at line [8]
      Description The server encountered an unexpected condition that prevented it from fulfilling the request.
      Exception
      org.apache.jasper.JasperException: An exception occurred processing [/listaTarefas.jsp] at line [8] 5: 6: <% 7: ArrayList<JavaBeans> lista = (ArrayList<JavaBeans>)request.getAttribute("contatos"); 8: for (int i = 0; i < lista.size(); i++){ 9: out.print(lista.get(i).getIdlista()); 10: } 11: %> Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:611) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:500) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:378) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:326) javax.servlet.http.HttpServlet.service(HttpServlet.java:733) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) Root Cause
      java.lang.NullPointerException org.apache.jsp.listaTarefas_jsp._jspService(listaTarefas_jsp.java:126) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71) javax.servlet.http.HttpServlet.service(HttpServlet.java:733) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:467) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:378) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:326) javax.servlet.http.HttpServlet.service(HttpServlet.java:733) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) Note A pilha de erros completa da causa principal está disponível nos logs do servidor.
       
       
      esse é o Medoto
       
      // Listar tarefa
              protected void tarefas(HttpServletRequest request, HttpServletResponse response)
                      throws ServletException, IOException {
                  //Criando um objeto que irá receber os dados do JavaBeans
                  ArrayList<JavaBeans> lista = dao.listarTarefa();
                  
                  request.setAttribute("tarefas", lista);
                  RequestDispatcher rd = request.getRequestDispatcher("listaTarefas.jsp");
                  rd.forward(request, response);
                  
                  //Teste de recebimento da lista
                  for(int i = 0; i<lista.size(); i++) {
                      System.out.println(lista.get(i).getIdcon());
                      System.out.println(lista.get(i).getTitulo());
                      System.out.println(lista.get(i).getDescricao());
                      System.out.println(lista.get(i).getData());
                      System.out.println(lista.get(i).getStatus());
                      System.out.println(lista.get(i).getPrioridade());
                  }
              }
          
    • By Leandro T.
      $.ajax({
             
           url: 'ajaxfile2.php?xis=<?php echo $PerguntasRow["pergunta_id"];?>&resx=<?php echo $_SESSION["respon"]; ?>', 
           type: 'POST',
           data: form_data2<?php echo $PerguntasRow["pergunta_id"];?>, 
           dataType: 'json',
           contentType: false,
           processData: false,
             
           success: function (data)  {  }
            }); 
               
              
      }
                       Pessoal, boa tarde! não estou conseguindo fazer o ajaxfile2.php receber os parâmetros deste ajax
       
       
    • By violin101
      Caros Amigos,
       
      saudações...
       
      Desculpa a recorrer ao auxílio dos amigos, mas estou com um pequeno problema que não estou conseguindo entender.
       
      A página inicial do meu Sistema tem um CAROUSEL com um SLIDER que deveria iniciar junto com a página. 
      INFELIZMENTE algumas vezes não inicia e para EXECUTAR o o Slider deve pressionar F5.
       
      Algumas vezes quando o Slider inicia depois de um período para o LOOP, não entendo isso.
       
      Abaixo o código do SLIDER.
      /*----------------------------------------*/ /* 01. Main Slider Ativação e Velocidade do Slide /* /* Como consigo resolver esse problema para o Slider INICIAR com um LOOP infinito /* sem ter que ficar atualizando a página ? /* /*----------------------------------------*/ $(".slider_active").owlCarousel({ loop: true, margin: 0, nav: true, autoplay: true, infinite: true, items: 1, autoplayTimeout: 10000, navText: ["<i class='fa fa-caret-left'></i>", "<i class='fa fa-caret-right'></i>"], dots: true, autoHeight: true, lazyLoad: true });  
      Grato,
       
      Cesar
    • By Person
      Estou fazendo um protótipo de e-commerce com aps clássico e sql server, na parte de administração, o usuário administrativo pode alterar o status do pedido,  para isso ele clica no botão de alterar na pagina principal e é redirecionado para um formulário onde tenho as options, para que ele mude o status, coloquei um botão para que ele passe os parâmetros  (id_pedido e id_status_pedido) para a pagina de manutenção, onde é feito o update e o envio de e-mail com as atualizações. Mas quero retirar esse botão e fazer com que, assim que eu clique em uma opção, ele altere, sem eu precisar ser redirecionado para a tela de manutenção, isso com o Ajax se possível.
       
      <body> <% call Abredb() cod = Request.QueryString("cod") evt = Request.QueryString("evt") if cod <> "" then cod = cint(cod) end if if ucase(evt) = "ALT" then sql = "exec SP_TR32_status_frm_SEL" 'Response.Write(sql) 'Response.End() set rs = dbWeb.execute(sql) estrato = rs("id_status_pedido") bot = "Alterar" end if %> <div class="container"> <div class="titulo">Formulario</div> <form action="manu_pedido.asp" method="post" enctype="multipart/form-data"> <div class="detalhes-formulario"> <div class="input-box"> <span class="detalhes">status</span> <select class="form-control" name = "status"> <% do while not rs.eof%> <option value="<%=rs("id_status_pedido")%>"><%=rs("descricao")%></option> <% rs.movenext loop rs.close set rs = nothing %> </select> </div> </div> <button><a href="/treinamento/Thau/mini_mercado/adm/manu_pedido.asp?evt=alt&cod="<%=cod%>"&estrato="<%rs("id_status_pedido")%> </form> </div> <br> </body> <%call Fechadb()%> </html> Abaixo está o código da minha pagina de manutenção, no qual acontece a alteração do status
      <% Function ZerosEsquerda(Num,tam) Dim Zero Num = Trim(Num) Zero = "" For i = Len(Num) To tam - 1 Zero = "0" & Zero Next ZerosEsquerda = Trim(Zero & Num) End Function byteCount = Request.TotalBytes RequestBin = Request.BinaryRead(byteCount) Set UploadRequest = CreateObject("Scripting.Dictionary") BuildUploadRequest RequestBin 'opc = request.QueryString("opc") 'if opc = "" then 'cod = UploadRequest.Item("hfcod").Item("Value") 'botao = UploadRequest.Item("botao").Item("Value") 'estrato = UploadRequest.Item("estrato").Item("Value") 'end if session.LCID = 1046 call Abredb() if botao = "Alterar" then ' ALTERANDO OS DADOS RECEBIDOS NA TABELA sql = "exec SP_TR32_pedido_UPD "&cod&", '"&estrato&"'" 'response.write sql 'response.end dbWeb.execute(sql) str_html = "" str_html = str_html & "<HTML><BODY BGCOLOR=#0000FF>" str_html = str_html & "<h1>produtos</h1>" sql ="SP_TR32_email__itens_sel "&cod&"" set rs = dbWeb.execute(sql) str_html = str_html & "<table>" str_html = str_html & "<thead>" str_html = str_html & " <tr>" str_html = str_html & "<th>Produtos</th>" str_html = str_html & "<th>quantidade</th>" str_html = str_html & " <th>Total</th>" str_html = str_html & "</tr>" str_html = str_html & " </thead>" str_html = str_html & "<tbody>" do while not rs.eof str_html = str_html & "<tr>" str_html = str_html & "<td >"&rs("produto")&"</td>" str_html = str_html & "<td >"&rs("quantidade")&"</td>" str_html = str_html & "<td >"&rs("total")&"</td>" str_html = str_html & "</tr>" rs.movenext loop rs.close set rs = nothing str_html = str_html & " </tbody>" str_html = str_html & "</table>" str_html = str_html & "</BODY></HTML>" sql = "SP_TR32_email_sel "&cod&"" set rs = dbWeb.execute(sql) if estrato<>"" then Set ObjMail = Server.CreateObject("Cdonts.Newmail") objMail.Subject = "Atualização de pedido" objMail.From = "Porto Dourado <contato@email.websupply.com.br>" objMail.To = "request("email")" objMail.BodyFormat = 0 objMail.MailFormat = 0 objMail.Body = "Olá"&" "&rs("nome")&" "&rs("sobrenome")&", </br> Houve uma atualização em seu pedido pedido: "&rs("id_pedido")&" </br> o status mudou para: "&rs("descricao")&" </br> endereço de entrega: "&rs("cep")&", "&rs("rua")&", "&rs("bairro")&", "&rs("numero")&", "&rs("cidade")&", "&rs("Uf")&" </br>Total pedido: "&rs("total_pedido")&" </br> "& str_html &" </br></br>"&" Atentamente,"&" </br> "&"Equipe Porto dourado"&" </br></br> "&"Para entrar em contato com a equipe de suporte, entre em contato com o email ou ligue para nossa central no numero " objMail.Send Set objMail = nothing envio = true %> <script> alert('email com alteração enviado com sucesso!'); </script> <% end if if estrato = 6 then sql = "exec SP_TR32_adm_data_envio_UPD "&cod&"" dbWeb.execute(sql) end if if estrato = 4 then sql = "exec SP_TR32_adm_data_entregue_UPD "&cod&"" dbWeb.execute(sql) end if %> <script> alert("Dados alterado com sucesso!") parent.location = "cst_pedido.asp" </script> <% end if %> <%call Fechadb()%>  
    • By srs1999_
      Tópico
       
      Site em Código
      Sobre desenvolver sites sem o wordpress que ja tá tudo ali feito que seja um site dinâmico ou seja com banco de dados , APIs de pagamento, Painel para o usuário ,  além de todas  as funções que tem no wordpress e você teria propriedade pra explicar sobre detalhes mais técnicos da produção onde no wordpress só quem entende de progrqmação explicaria algum detalhe técnico 
      Então usando basicamente : 
      FRONT END 
      HTML 
       CSS 
      JAVASCRIPT 
      ALGUMA DE BACKEND COMO PHP E BANCO DE DADOS
      Pode se criar sites/sistemas tão bons ou melhores que no wordpress
       
      Fato : o proprio wordpress é feito em php e ate o proprio facebook tbm em php
      Fato 2 :  cerca de 70% dos sites são feitos em Wordpress
       
      Acho esse lance de procurar o caminho mais fácil limita muito a pessoa por exemplo é facil editar imagens no paint bem intuitivo , agora para editar no photoshop com muitas outras possibilidades  acaba sendo importante ir explorando essa elaboração mais difícil  com um mesmo objetivo. No caso do exemplo ( editar imagens )  
       
      Reflexão:
      Vale a pena se dedicar a trabalhar com a ferramenta Wordpress apenas por ser um meio rápido de ganhar dinheiro ?
      Ou trabalhar sem wordpress  usando tudo que exigido pra criar coisas originais mais que não seria tão rápido a produção. Mas creio que além dos sites feitos também geraria a possibildade de vender o sistema web criado para o cliente personalizar .
       
      Você Desenvolveria de que forma :
       Wordpress apenas ?
       
      Conhecer programação pra trabalhar 
      com  Wordpress ?
       
      Produzir tudo só com programação totalmente dinâmico sem  Wordpress?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.