Wert eines DIV Inhalts ändern

fUnKuCh3n

Erfahrenes Mitglied
Moin,

ich habe vor bei mir im Firefox mittels Greasemonkey den Wert (ein Preis) in einem DIV zu verändern, also das dort direkt der Wert * 1,19 steht.

HTML:
		    <div class="price" style="float: left;">
		    	€ 429,90<span class="unbold">*</span>
		    </div>

Das ist besagter DIV allerdings habe ich nicht so wirklich einen Ansatz wie ich das realisiere?
Jemand ne Idee?
LG
 
Ich steh gerad ein wenig aufm Schlauch, wie bekomme ich denn die Inhalte der einzelnen Class Objekte raus und kann diese dann mathematisch verarbeiten?

Liebe Grüße
Sascha
 
Javascript:
document.getElementsByClassName('price');

Und anschließend mit einem regulären Ausdruck den Preis suchen und mit 1.19 multiplizieren und dann wieder reinschreiben. Das Auslesen und Schreiben jeweils mit den von tombe genannten Attributen.
 
@CPoly: Wird das überhaupt von allen Browsern unterstützt? Ich habe hier Probleme damit.


Habe jetzt mit einer "kleinen" Funktion was gebastelt:

HTML:
<script type="text/javascript">

function aendere(nummer) {
	inhalt = document.getElementsByTagName("div")[nummer].firstChild.nodeValue;
	inhalt = inhalt.replace(/€ /, "");
	inhalt = inhalt.replace(/,/, ".");
	inhalt = parseFloat(inhalt);
	inhalt = inhalt * 1.19;
	inhalt = inhalt.toFixed(2);

	document.getElementsByTagName("div")[nummer].firstChild.nodeValue = inhalt;

}

</script>


<div class="price" style="float: left;" onclick="aendere(0);">€ 429,90<span class="unbold">*</span></div>
<br />
<div class="price" style="float: left;" onclick="aendere(1);">€ 555,55<span class="unbold">*</span></div>

Das noch ein bisschen angepasst sollte dann funktionieren.
 
Zuletzt bearbeitet:
@CPoly: Wird das überhaupt von allen Browsern unterstützt?

Spielt keine Rolle weil:

ich habe vor bei mir im Firefox mittels Greasemonkey

Edit:

Javascript:
var all = document.getElementsByClassName('price');
var rx = /([^0-9]*)([0-9]+,[0-9]+)([^0-9]*)/;

for(var i = 0; i < all.length; i++) {
	var matches = all[i].innerHTML.match(rx);
	
	if(matches === null)
		continue;
	
	var price = parseFloat(matches[2].replace(',', '.'), 10);
	price *= 1.19;
	all[i].innerHTML = matches[1] + price.toFixed(2).replace('.', ',') + matches[3];
}
 
Zuletzt bearbeitet:
Zurück