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<script language="javascript">
function votar_positivo(){
var variable_post="<? echo $categoria_opiniones; ?>";
var otroId = "un_valor"; //este ya está declarado antes de usarlo
var id = document.getElementById('votopositivo'+otroId ).dataset.id;
var voto = document.getElementById('votopositivo'+otroId ).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 otroId = "un_valor"; //este ya está declarado antes de usarlo
var id = document.getElementById('votonegativo'+otroId ).dataset.id;
var voto = document.getElementById('votonegativo'+otroId ).dataset.voto;
$.post("../includes/votar.php", { variable: variable_post, 'id':id, 'voto':voto }, function(data){
$("#votarnegativo"+id).html(data);
});
}
</script>