Register for your free account! | Forgot your password?

Go Back   elitepvpers Coders Den Web Development
You last visited: Today at 00:31

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Addieren statt zusammenfügen

Discussion on Addieren statt zusammenfügen within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
Undaground's Avatar
 
elite*gold: 5
Join Date: Dec 2009
Posts: 1,474
Received Thanks: 1,421
Addieren statt zusammenfügen

Hey Com,

habe ein kleines Problemchen mit meinem Code, ich habe die Datentypen auf Float gesetzt aber trotzdem werden die Zahlen einfach nur hintereinander geschrieben.

HTML Code:
$(document).ready(function () {
		var $item = $('.select-pizza'),
			$select = $item.find('.pizza-size'),
			$addBtn = $('.pizza-add'),
			$addIngredient = $('.ingredient-add');

		$select.on('change', function (e) {
			$(this).parent().find('.pizza-price span').html($(this).find('option:selected').data('price'))
		}).trigger('change');



		$addIngredient.on('click', function () {
			var $wrapper = $(this).parent(),
				$currOpt = $wrapper.find('.pizza-add-ingredient option:selected'),
				$list = $wrapper.find('.pizza-ingredients'),
				newPrice = parseFloat($wrapper.find('.pizza-price span').html(), 10) + $currOpt.data('price');

			$list.append('<li data-price="' + $currOpt.data('price') + '"><span>' + $currOpt.text() + '</span> <a href="#" class="remove-ingredient"> entfernen</a></li>');
			$wrapper.find('.pizza-price span').html(newPrice);
		});
		$(document).on('click', '.remove-ingredient', function (e) {
			e.preventDefault();
			var $this = $(this),
				$wrapper = $this.closest('.select-pizza'),
				newPrice = parseFloat($wrapper.find('.pizza-price span').text(), 10) - parseFloat($this.parent().data('price'));

			$wrapper.find('.pizza-price span').text(newPrice);
			$this.parent().remove();
		});
		$addBtn.on('click', function () {
			var $wrapper = $(this).parent(),
				$currOpt = $wrapper.find('.pizza-size').find('option:selected'),
				ingredients = [];
			$wrapper.find('.pizza-ingredients li span').each(function (i, el) {
				ingredients.push('<li>' + $(this).html() + '</li>');
			});

			var myItem = simpleCart.add({
				name: $wrapper.find('.pizza-name').html(),
				price: parseFloat($wrapper.find('.pizza-price span').html(), 10),
				size: $currOpt.val(),
				extras: ingredients.join('')
			});
		});
	})
Undaground is offline  
Old   #2


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
Bitte ein funktionstüchtiges Beispiel(jsfiddle.net) erstellen, wo man schnell helfen kann.Und bitte den Code übersichtlicher machen, das kann schonmal nicht gehen :
$addBtn.on('clickunction () {
False is offline  
Old   #3
 
Undaground's Avatar
 
elite*gold: 5
Join Date: Dec 2009
Posts: 1,474
Received Thanks: 1,421
Code:
$(document).ready(function () {
		var $item = $('.select-pizza'),
			$select = $item.find('.pizza-size'),
			$addBtn = $('.pizza-add'),
			$addIngredient = $('.ingredient-add');

		$select.on('change', function (e) {
			$(this).parent().find('.pizza-price span').html($(this).find('option:selected').data('price'))
		}).trigger('change');



		$addIngredient.on('click', function () {
			var $wrapper = $(this).parent(),
				$currOpt = $wrapper.find('.pizza-add-ingredient option:selected'),
				$list = $wrapper.find('.pizza-ingredients'),
				newPrice = parseFloat($wrapper.find('.pizza-price span').html(), 10) + $currOpt.data('price');

			$list.append('<li data-price="' + $currOpt.data('price') + '"><span>' + $currOpt.text() + '</span> <a href="#" class="remove-ingredient"> entfernen</a></li>');
			$wrapper.find('.pizza-price span').html(newPrice);
		});
		$(document).on('click', '.remove-ingredient', function (e) {
			e.preventDefault();
			var $this = $(this),
				$wrapper = $this.closest('.select-pizza'),
				newPrice = parseFloat($wrapper.find('.pizza-price span').text(), 10) - parseFloat($this.parent().data('price'));

			$wrapper.find('.pizza-price span').text(newPrice);
			$this.parent().remove();
		});
		$addBtn.on('click', function () {
			var $wrapper = $(this).parent(),
				$currOpt = $wrapper.find('.pizza-size').find('option:selected'),
				ingredients = [];
			$wrapper.find('.pizza-ingredients li span').each(function (i, el) {
				ingredients.push('<li>' + $(this).html() + '</li>');
			});

			var myItem = simpleCart.add({
				name: $wrapper.find('.pizza-name').html(),
				price: parseFloat($wrapper.find('.pizza-price span').html(), 10),
				size: $currOpt.val(),
				extras: ingredients.join('')
			});
		});
	})
so siehts aus, keine Ahnung wie das da oben zustande kam aber so sieht der eigentliche code aus. Ich denke JSfiddle is dazu nicht wirklich notwendig wenn sich jemand wirklich auskennt. Vllt sieht jemand ob ich irgendwo ein Datentyp falsch einsetze oder value als text auslese
Undaground is offline  
Old   #4
dotCom
 
Devsome's Avatar
 
elite*gold: 10414
The Black Market: 107/0/0
Join Date: Mar 2009
Posts: 17,074
Received Thanks: 4,758
Quote:
Originally Posted by .ƒaℓsє. View Post
Bitte ein funktionstüchtiges Beispiel(jsfiddle.net) erstellen, wo man schnell helfen kann.Und bitte den Code übersichtlicher machen, das kann schonmal nicht gehen :
$addBtn.on('clickunction () {
danke.

---
@Te:
Doch ein jsfiddle.net ist nötig, da wir, wenn wir uns schon in ein Code reinarbeiten müssen nicht auch noch in HTML die ganzen klassen erstellen wollen.
Devsome is offline  
Old   #5
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,876
Hab den Code nicht wirklich angeschaut und mich darauf verlassen, dass ich die Frage aus dem Kontext und meinen Erfahrungen her richtig verstanden habe, aber JS optimiert intern sehr viel.
Dazu gehört unter anderem auch das Umwandeln in Strings, wenn es logisch erscheint.

Das heißt etwas deartiges:
Code:
var tmp1=10;
var tmp2=15;

var tmp3="Hallo "+(tmp1+tmp2);
// etliche Befehle mehr, die tmp1 und tmp2 als String erwarten/verwenden
Kann "fälschlicherweise" tmp1 und tmp2 von Anfang an als String speichern und es nur bei Bedarf einmal kurz umwandeln, wobei dann aber nicht der Typ von tmp1 oder tmp2 geändert wird (dieser ist weiterhin STRING) sondern nur der Inhalt in einen Int konvertiert in eine andere nicht sichtbare Variable verschoben, nicht jedoch der Typ der Variable selbst sich ändert.

Auf gut deutsch obiger Code könnte äquivalent sein zu:
Code:
var tmp1=10;
var tmp2=15;

var tmp3="Hallo 1510";
// etliche Befehle mehr, die tmp1 und tmp2 als String erwarten/verwenden
Damit man Javascript dazu zwingt auch wirklich 2 Zahlen zu addieren, muss man eine Operation nehmen, die nur auf Zahlen anwendbar ist. Das kann Math.abs sein, |0 oder sonst irgendetwas. Normalerweise nimmt man aber *1. Das heißt der Code oben sähe so aus:
Code:
var tmp1=10;
var tmp2=15;

var tmp3="Hallo "+(tmp1*1+tmp2*1);
// etliche Befehle mehr, die tmp1 und tmp2 als String erwarten/verwenden
Shadow992 is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
Exp boni addieren
10/26/2013 - CrossFire - 4 Replies
Hey Leute, addiert sich der exp bonus von vip waffen mit exp - event oder mit rp gekauften exp boni ? Wenn man in bag 1 zb die awm infernal hat und in bag 2 die ak beast eye addieren sich die boni dann zu 400 prozent exp ? Freue mich über aufklärende Antworten. (:
Spalten addieren
02/12/2013 - .NET Languages - 8 Replies
hi! Ich habe folgendes Problem in Visual Basics http://i.epvpimg.com/vVwCe.jpg wie kann ich das umsetzen? Teamspeak + Teamviewer wär das beste, wäre schön wenn sich wer findet :)
Pointer und offset addieren
02/26/2012 - .NET Languages - 5 Replies
HI! Kann mir bitt jemand diesen Pointer: &H290330 mit dieser Offset addieren: &H6F8 (Ich brauche das für VB08) Danke!
++ Addieren
10/30/2010 - General Coding - 13 Replies
Hallo wie kann ich in einer while mehr als 1 addieren ? Also wenn z.B.: int a ; in der while dann while(bla) a++
Variabeln addieren
08/08/2009 - AutoIt - 13 Replies
hai leuts hab hier ein kleines prog in arbeit. ist zwar kein bot aber es soll eine überraschung für mein grossvater werden. er liebt es ein schweizer kartenspiel names "jasse" zu spielen und dieses programm soll für ihn rechnen und schreiben. nun zu meinem problem: ich mächte auf der linken seite bei punkte eine zahl ein geben können welche es danach zur gesammtpunktzahl addiert, komishcer weise stimmen die zahlen jedoch nicht wenn ich 10 eingebe und auf den button schreiben drücke...



All times are GMT +2. The time now is 00:32.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.