Passar return de funçao para variavel

Estou quebrando a cabeça e nao encontro a soluçao!
Gostaria de passar o valor de uma funçao para uma variavel, depois comparar essa variavel com outras variaveis e mostrar um alert na tela.
Até agora tenho isso:

<script type="text/javascript">
function add() {
  v = document.getElementById("num");
  v.innerHTML = parseInt(v.innerHTML) + 1;
  return v;
}

function add2(){
  v2 = document.getElementById("num2");
  v2.innerHTML = parseInt(v2.innerHTML) + 1;
  return v2;
}

function add3(){
  v3 = document.getElementById("num3");
  v3.innerHTML = parseInt(v3.innerHTML) + 1;
  return v3;
}
 g1=add;
g2=add2;

function groupe(){
if ((g1 > g2)) {
	//document.getElementById("grup").value = gg
	//document.write("<H1>G01</H1>");
	
	window.alert( "G 01");
}
}
    
</script>

Brigadao pela ajuda,

Troque isso:

g1=add;  
g2=add2; 

por isso:

g1=add();  
g2=add2(); 

Porém, o principal, é entender por que o que você fez não funcionou. O que você fez, foi fazer com que as variáveis referenciassem as funções. Para chamá-las (e então pegar seus retornos) é preciso usar os parênteses.

Mesmo fazendo isso, acho que o resultado não será o que você espera, pois as funções retornam o elemento e acho que você gostaria de retornar o valor calculado. Corrija-me se eu estiver enganado.

Exatamenteisto amigo.

Quando uso g1=add1(); o resultado retornado é toda a descrição da função add1.
Como fazer para obter o valor de return dessa funçao?

Obrigadao!

Usando os parênteses você já está pegando o valor de retorno das funções.

O problema é que você está retornando v, v2 e v3, que são elementos do html (que você busca pelo document.getElementById), quando na verdade você quer retornar o valor que está armazenado no elemento + 1…

como faço para resolver isso?

brigada,

Você que fez essas funções?

Sabe, por exemplo, o que essa linha faz?

v.innerHTML = parseInt(v.innerHTML) + 1;  

Ola regis_hideki , obrigada pela presença =D
Seguinte,

entendi que o innerHTML pega todo o conteudo de uma baliza html,
depois faz uma conversao (parseInt) e acrescenta 1.

function add3(){
  v3 = document.getElementById("num3");
  v3.innerHTML = parseInt(v3.innerHTML) + 1;
  return v3;
}

Na minha humilde compreensao, return v3, retornaria o valor do HTML (num3)… SQN =s

Brigada,

O v3 é um elemento html. Pode ser um campo de entrada, uma div, etc, depende de qual elemento tem o id “num3”

Agora pensa o seguinte: faz sentido comparar dois elementos html? Por exemplo, comparar um

4
com um
5
? A resposta é não. O que você quer, é comparar os valores que estão armazenados nos elementos, ou seja, 4 e 5.

Estou tentando não te dar resposta pronta pra você pensar um pouco e tentar deduzir.

Exatamente…
Eu quero comparar os valores das divs e nao as divs.

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<style type="text/css">
#prod{background-color:#000000; color:#FFFFFF; width:400px;position:absolute;}
#prod2{color:#FFFFFF; width:400px;position:relative;float:right;}
#carr{position:absolute; left:600px; top:0px;}
</style>
<script type="text/javascript">
function add() {
  v = document.getElementById("num");
  v.innerHTML = parseInt(v.innerHTML) + 1;
  return v;
}

function add2(){
  v2 = document.getElementById("num2");
  v2.innerHTML = parseInt(v2.innerHTML) + 1;
  return v2;
}

function add3(){
  v3 = document.getElementById("num3");
  v3.innerHTML = parseInt(v3.innerHTML) + 1;
  return v3;
}

function groupe(){
	var g1=add;
	window.alert( g1);
}
    
</script>
</head>
<body>
    <div id="prod">
        <p>Calca: <br><input type="button" name="cal" onclick="add()" value="Adicionar ao Carrinho."></p>
        <p>Bermuda: <br><input type="button" name="ber"  onclick="add2()" value="Adicionar ao Carrinho."></p>
        <p>Camisa: <br><input type="button" name="cam"  onclick="add3()" value="Adicionar ao Carrinho."></p>
        </div>
    <div id="carr">
        <p>Calca<br> Iten(s):<p id="num">0</p></p>
        <p>Bermuda<br> Iten(s):<p id="num2">0</p></p>
        <p>Camisa<br> Iten(s):<p id="num3">0</p></p>
        </div>
		
	<div id="prod2">
	<input type="button" name="gp"  onclick="groupe()" value="OKKKKKKKKKKKKKKK">
	</div>
	
</body>
</html>

Se o innerHTML pega todo o conteudo de uma baliza, como nao me mostra os valores das divs?

Obrigada e boa semana,

[quote=veronicaveronica]Exatamente…
Eu quero comparar os valores das divs e nao as divs.

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<style type="text/css">
#prod{background-color:#000000; color:#FFFFFF; width:400px;position:absolute;}
#prod2{color:#FFFFFF; width:400px;position:relative;float:right;}
#carr{position:absolute; left:600px; top:0px;}
</style>
<script type="text/javascript">
function add() {
  v = document.getElementById("num");
  v.innerHTML = parseInt(v.innerHTML) + 1;
  return v;
}

function add2(){
  v2 = document.getElementById("num2");
  v2.innerHTML = parseInt(v2.innerHTML) + 1;
  return v2;
}

function add3(){
  v3 = document.getElementById("num3");
  v3.innerHTML = parseInt(v3.innerHTML) + 1;
  return v3;
}

function groupe(){
	var g1=add;
	window.alert( g1);
}
    
</script>
</head>
<body>
    <div id="prod">
        <p>Calca: <br><input type="button" name="cal" onclick="add()" value="Adicionar ao Carrinho."></p>
        <p>Bermuda: <br><input type="button" name="ber"  onclick="add2()" value="Adicionar ao Carrinho."></p>
        <p>Camisa: <br><input type="button" name="cam"  onclick="add3()" value="Adicionar ao Carrinho."></p>
        </div>
    <div id="carr">
        <p>Calca<br> Iten(s):<p id="num">0</p></p>
        <p>Bermuda<br> Iten(s):<p id="num2">0</p></p>
        <p>Camisa<br> Iten(s):<p id="num3">0</p></p>
        </div>
		
	<div id="prod2">
	<input type="button" name="gp"  onclick="groupe()" value="OKKKKKKKKKKKKKKK">
	</div>
	
</body>
</html>

Se o innerHTML pega todo o conteudo de uma baliza, como nao me mostra os valores das divs?

Obrigada e boa semana,
[/quote]

Aqui:

var g1=add;

Você não está chamando a função. É o mesmo caso da minha primeira resposta. O correto seria:

var g1=add();

Outro ponto: acredito que você espera que g1 contenha a quantidade de calças, mas olhe bem para a função add e veja que ela não retorna o número contido na div, mas sim a própria div. Você já usou o innerHTML pra fazer a soma, basta usá-lo de novo no return para retornar o valor que você quer.

Opcional, mas altamente recomendado: mude o nome dessas funções e variáveis pra deixar tudo mais claro. Exemplos:

Ao invés de add, add2 e add3, porque não addCalca, addBermuda e addCamisa?
Ao invés de num, num2 e num3, porque não qtdeCalca, qtdeBermuda, qtdeCamisa?
Ao invés de v, porque não divQtdeCalca?

Algumas contrações não são muito intuitivas. “qtde” todo mundo sabe que é “quantidade”, mas como saber se “cam” é “camisa”, “camiseta”, “camisola”, etc…? E se futuramente aparece a camiseta, como ficam as variáveis? “cam” e “camiseta”? “cam” e “cam2”? Pra se confundir na hora de mexer no código, é facinho.

hey hey regis_hideki, muito obrigada pelas dicas super uteis…

Fiz a alteraçao, mas me da uma msg quando clico no botao: [object HTMLParagraphElement]…
Agora fundiu as idéias aqui, peskisei no google, mas nao tem nada em português para me ajudar bem legal… nao tem um explicativo do que é este tal [object HTMLParagraphElement]…

Agora quero outra dica: tem como por exemplo em java script eu fazer o seguinte:

  • mostrar varias imagens (DIVS) e quando o internauta clicar sobre 3 ou 4 dessas imagens (que sao DIVS) eu vou propor uma quinta imagem para esta pessoa.
    Tem como eu comparar (if/else) cliques numa div??? Por exemplo:

DIV 01 até DIV 10 = animais
DIV 11 até DIV 20 = frutas
DIV 21 até DIV 30 = cidades…

se eu clicar na DIV 01, DIV 09 e DIV 30 vou mostrar por exemplo uma figura relacionada a um animal pois DIV 01 e DIV 09 que sao maioria estao na “classe” animal.

Este eu ainda nem fiz o codigo nada, mas quero saber da possibilidade de fazer!

Muito obrigada amigo,