Problema diferença document.getElementById e innerHtml

Pessoal estou com o seguinte problema:

Eu tenho uma aplicação web onde eu vou adicionando produtos e o sistema vai calculando pra mim o subtotal ( que é o valor do produto * quantidade de produtos pedido) antes de fechar um pedido.

Então vamos supor, se eu adiciono um produto X com quantidade 10 e depois insiro o mesmo produto X com quantidade 10 tambem, o sistema atualiza a quantidade do produto X já inserido para 20 e recalcula o subtotal.
Até ai blz, mas qdo eu insiro um outro produto Y , ele volta o produto X para 10 unidades.

No document.getElement … ele aparece com o valor correto de 20 unidades, mas no innerHtml ele aparece com o valor de 10.

alguém tem idéia de como resolver esse problema??

obrigado

Cara, sua dúvida é JavaScript né? Não sei se esse forum seria o forum correto para postar ela. Mas de qualquer forma posso tentar te ajudar… mas manda o codigo da sua pagina para olharmos!!!

[code]var item=-1;
for(j = 0; j<t_item; j++){
if(vetProdutos[j] == codigoDeBarras.value){
item=j;
}
}

	   	if(item>=0){
	   		alert("item: "+item);
			window.alert('vet '+vetProdutos[item]);
			window.alert('cod '+codigoDeBarras.value);		   		
	   		
			  	window.alert('if');
			  	
			  	window.alert(document.getElementById('unidade'+item).value);
			  	window.alert('unidade'+item);
			  	var temp = (document.getElementById('unidade'+item).value)*1 + unidade.value*1;
			  
			  	document.getElementById('unidade'+item).value = temp; 
			  	
			  	document.getElementById('subTotal'+item).value = float2moeda((precoDeVenda.value*1 * temp));
			  	
		}else{	
					
				 var input_codigoDeBarras="<input style='width: 125px' class=cx name='codigoDeBarras"+i_item+"' value='"+codigoDeBarras.value+"' readonly='readonly' />"; 
				 var input_descricao="<input style='width: 200px' class=cx name='descricao"+i_item+"' value='"+descricao.value+"' readonly='readonly' />";
				 var input_unidade="<input style='width: 40px' class=cx name='unidade"+i_item+"' value='"+unidade.value+"' readonly='readonly' />";
				 var input_precoDeVenda="<input style='width: 80px' type='text' class=cx name='precoDeVenda"+i_item+"' value='"+precoDeVenda.value+"' readonly='readonly' />";
				 var input_subTotal="<input style='width: 100px' class=cx type='text' id='subTotal"+i_item+"' name='subTotal"+i_item+"' value='"+subTotal+"' readonly='readonly' />";
				 var bt_delete="<a href='#'><span class='bot_delete bot_img' title='::Excluir Item::' alt='::Excluir Item::' onClick='javaScript:deleteItem("+i_item+")'></a>";
				
				
				 var pedidos=document.getElementById('items');
				 if(t_item==0){
				 	pedidos.innerHTML="<span><label class='i_linha' style='width: 130px;text-align:center;'>Codigo De Barras</label><label class='linha' align='center'; style='width: 205px;text-align:center;'>Descricao</label><label class='linha' align='center'; style='width: 30px;text-align:center;'>Und.</label><label class='linha' align='center'; style='width: 80px;text-align:center;'>Preco Unitário</label><label class='linha' align='center'; style='width: 50px;text-align:center;'>SubTotal</label></span>";
				 }
				 alert(pedidos.innerHTML);
				 pedidos.innerHTML=pedidos.innerHTML+"<div id='"+i_item+"'>"+input_codigoDeBarras+input_descricao+input_unidade+input_precoDeVenda+input_subTotal+bt_delete+"<BR clear='ALL'></div>";
				 
			  
			  	
				 document.getElementById('t_pedidos').value=i_item;
					 
				 var totalSemDesconto = document.getElementById('totalSemDesconto').value;
				 document.getElementById('totalSemDesconto').value = float2moeda((totalSemDesconto*1) + (subTotal*1));
				  	 
				  	 
				 var desconto = document.getElementById('desconto').value;
				 if((desconto*1) > 0.0 ){
				  	 var total = document.getElementById('totalSemDesconto').value;
				  	 document.getElementById('total').value = float2moeda(( (total*1) * (1.0 - ((desconto*1) / 100.0))));
				 }
				 
				 
				  vetProdutos[i_item] = codigoDeBarras.value;
			 
			 
			     i_item++;
				 t_item++;
			  
			  
        }[/code]

Evite fazer cálculos monetários em Javascript para não ter problemas com arredondamento, para não perder a interatividade use ajax a faça o cálculo com BigDecimal no Java e devolva para a View.