Foros del Web » Programando para Internet » Javascript »

Uncaught TypeError: Cannot read property 'dataset' of null

Estas en el tema de Uncaught TypeError: Cannot read property 'dataset' of null en el foro de Javascript en Foros del Web. Hola! tengo un script con el que voto comentarios pero a la hora de votar no hace nada... sale un error en la consola del ...
  #1 (permalink)  
Antiguo 31/03/2016, 06:36
 
Fecha de Ingreso: diciembre-2006
Mensajes: 35
Antigüedad: 17 años, 4 meses
Puntos: 0
Uncaught TypeError: Cannot read property 'dataset' of null

Hola! tengo un script con el que voto comentarios pero a la hora de votar no hace nada... sale un error en la consola del navegador:

Uncaught TypeError: Cannot read property 'dataset' of null
index.php?pe=opiniones-productos&opinion=3-&categoria=informatica_datos-&id-categoria=3-:504 Uncaught TypeError: Cannot read property 'dataset' of nullvotar_positivo @ index.php?pe=opiniones-productos&opinion=3-&categoria=informatica_datos-&id-categoria=3-:504onclick @ index.php?pe=opiniones-productos&opinion=3-&categoria=informatica_datos-&id-categoria=3-:439


Alguien podría ayudarme plis?

Aquí el código:

Código HTML:
<img style="float:left;" src="../images/me-gusta.png" id="votopositivo<? echo $row['id']; ?>" onclick="javascript:votar_positivo();" data-id="<? echo $row['id']; ?>" data-voto="positivo">
 <span style="float:left;font-size:12px;color:#908E8E;" id="votarpositivo<? echo $row['id']; ?>">&nbsp;<? echo $row['me_gusta']; ?></span>
 
<img style="float:left;" src="../images/no-me-gusta.png" id="votonegativo<? echo $row['id']; ?>" onclick="javascript:votar_negativo();" data-id="<? echo $row['id']; ?>" data-voto="negativo">
<span style="float:left;font-size:12px;color:#908E8E;" id="votarnegativo<? echo $row['id']; ?>">&nbsp;<? echo $row['no_me_gusta']; ?></span> 

Código HTML:
<script language="javascript">
function votar_positivo(){
    var variable_post="<? echo $categoria_opiniones; ?>";
    var id = document.getElementById('votopositivo'+id).dataset.id;
    var voto = document.getElementById('votopositivo'+id).dataset.voto;
 
    $.post("../includes/votar.php", { variable: variable_post, 'id':id, 'voto':voto }, function(data){
    $("#votarpositivo"+id).html(data);
    });
}
function votar_negativo(){
    var variable_post="<? echo $categoria_opiniones; ?>";
    var id = document.getElementById('votonegativo'+id).dataset.id;
    var voto = document.getElementById('votonegativo'+id).dataset.voto;
 
    $.post("../includes/votar.php", { variable: variable_post, 'id':id, 'voto':voto }, function(data){
    $("#votarnegativo"+id).html(data);
    });
}
</script> 
la linea donde da el error es esta:

Código HTML:
var id = document.getElementById('votopositivo'+id).dataset.id;
Gracias
  #2 (permalink)  
Antiguo 31/03/2016, 07:22
 
Fecha de Ingreso: mayo-2014
Mensajes: 44
Antigüedad: 9 años, 11 meses
Puntos: 10
Respuesta: Uncaught TypeError: Cannot read property 'dataset' of null

El problema es en el '+id'. Que estás usando una variable que no existe (todavía), por lo que será undefined, y por tanto el elemento no lo encuentra, por tanto no tiene dataset.

Tendría que ser algo como:

Código Javascript:
Ver original
  1. <script language="javascript">
  2. function votar_positivo(){
  3.     var variable_post="<? echo $categoria_opiniones; ?>";
  4.     var otroId = "un_valor"; //este ya está declarado antes de usarlo
  5.     var id = document.getElementById('votopositivo'+otroId ).dataset.id;
  6.     var voto = document.getElementById('votopositivo'+otroId ).dataset.voto;
  7.  
  8.     $.post("../includes/votar.php", { variable: variable_post, 'id':id, 'voto':voto }, function(data){
  9.     $("#votarpositivo"+id).html(data);
  10.     });
  11. }
  12. function votar_negativo(){
  13.     var variable_post="<? echo $categoria_opiniones; ?>";
  14.     var otroId = "un_valor"; //este ya está declarado antes de usarlo
  15.     var id = document.getElementById('votonegativo'+otroId ).dataset.id;
  16.     var voto = document.getElementById('votonegativo'+otroId ).dataset.voto;
  17.  
  18.     $.post("../includes/votar.php", { variable: variable_post, 'id':id, 'voto':voto }, function(data){
  19.     $("#votarnegativo"+id).html(data);
  20.     });
  21. }
  22. </script>
  #3 (permalink)  
Antiguo 31/03/2016, 09:38
 
Fecha de Ingreso: diciembre-2006
Mensajes: 35
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Uncaught TypeError: Cannot read property 'dataset' of null

Gracias leugimsiul, pero sigue sin funcionar como quisiera..

Te comento

Cada comentario tiene un id

a la hora de votar un comentario le asigno un id para saber cual es el comentario al que tengo que votar

Código HTML:
id="votopositivo<? echo $row['id']; ?>"
en javascript como podría hacer para que obtenga el valor de $row['id']; ya que es un valor numérico que no puedo asignárselo yo ya que varia según el comentario que voten...

Código HTML:
var id = document.getElementById(votopositivo'+id).dataset.id;
si pongo id="votopositivo" el voto siempre se realiza al primer comentario, aunque voten el segundo.

Etiquetas: dataset, html, null, php, read
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:56.