Ich möchte einen Wert aus einer ID auslesen und damit weiter rechnen

  • Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

SirRichard

Neues Mitglied
22 Juni 2020
6
0
1
17
Hallo Leute,
ich hoffe, hier mit meinem Anliegen richtig zu sein.
Ich habe eine Wordpress-PlugIn, welches mir im Shop den Bruttobetrag anzeigt. Der versteckt sich in einer ID. Hier das Html: <th id="nggpl-total_field"></th>
Ich möchte jetzt gern die MWSt. dazu anzeigen und wollte die id="nggpl-total_field" auslesen, damit in php o.ä. weiterrechnen und dann wieder ausgeben. Ich probiere es mit einem kleinen Script, aber irgendwie hänge ich. Bin ich auf dem richtigen Dampfer? Bin für Hifle überaus dankbar.
<script>
var MWSt = document.getElementById('nggpl-total_field').getAttribute('value');
document.getElementById("demo").innerHTML = MWSt;
</script>
<p id="demo"></p>

Vielen Dank im Voraus.
Christian
 

basti1012

Senior HTML'ler
26 November 2017
1.445
150
63
39
Minden
sebastian1012.bplaced.net
Das sollte das Wordpress-PlugIn doch bestimmt können oder ?
.getAttribute('value');
Ein TH Element hat normalerweise kein Value.
Versuch es mal mit innerHTML.
Habe aber jetzt ein verhalten bemerkt das man ein einzelnes <th> Element nicht auslesen kann.
Erst wenn man ein <tr> und <table> drumherum baut.

Das wußte ich auch noch nicht.
So funktioniert es
Code:
<table><tr>
<th id="nggpl-total_field">150</th>
</tr></table>
<p id="demo"></p>
<script>
var MWSt=document.getElementById('nggpl-total_field');
var inhalt=MWSt.innerHTML;// Auslesen

var ergebniss=((inhalt/100)*16)+parseInt(inhalt);// 16% MWSt dazu rechnen
document.getElementById("demo").innerHTML =ergebniss;// Ergebniss ausgeben
</script>

So geht es nicht
Code:
<th id="nggpl-total_field">150</th>
<p id="demo"></p>
<script>
var MWSt=document.getElementById('nggpl-total_field');
var inhalt=MWSt.innerHTML;
// Uncaught TypeError: Cannot read property 'innerHTML' of null
</script>

Gibt es dafür eine erklärung ?
 
Zuletzt bearbeitet:

SirRichard

Neues Mitglied
22 Juni 2020
6
0
1
17
Hallo basti1012,
1.000 Dank für Deine kostbare Zeit und Dein Mitdenken.
Es ist schon ganz nah dran. Mein großes Problem ist nur, dass die Zeile <th id="nggpl-total_field"></th> vom Plugin vorgegeben wird. Hier steckt irgendwie der Wert drin. Ich kann daher nicht einfach hier die 150 reinschreiben. Der Wert muss irgendwie da ausgelesen werden. Oder da, wo er in diese id geschrieben wurde. Aber ich weiß nicht wo das ist.
Der Rest von Deinem Vorschlag ist schön. Danke Dir.
Hast Du vielleicht noch eine Idee? Es würde mich riesig freuen.
Beste Grüße
Christian
 

basti1012

Senior HTML'ler
26 November 2017
1.445
150
63
39
Minden
sebastian1012.bplaced.net
Mein großes Problem ist nur, dass die Zeile <th id="nggpl-total_field"></th> vom Plugin vorgegeben wird. Hier steckt irgendwie der Wert drin. Ich kann daher nicht einfach hier die 150 reinschreiben.
Die 150 sind nur ein Beispiel damit der Beispiel Code auch funktioniert.
Du solltet mal in deiner Console schauen wie das <th> Element aussieht wenn dein Warenkorb voll ist.
Es könnte sein das der Betrag als innerHTML eingetragen ist
<th> 150</th>
oder ein value dazugekommen ist
<th value="150"></th>
oder sonstige Attributen.
Irgendwo wird der Betrag da wohl zu finden sein und dann kann man das Script ändern.
Ist dein Shop schon online , damit man sich das mal ankucken kann ?
 

m.scatello

Senior HTML'ler
15 Februar 2017
1.317
161
63
Wenn es sich um ein Wordpress-PlugIn handelt, würde ich zuerst einmal nachsehen, ob das Plugin das nicht schon selber kann, ansonsten würde ich nachsehen, ob man das Plugin erweitern kann, bevor ich da mit JavaScript rumturne.
 

SirRichard

Neues Mitglied
22 Juni 2020
6
0
1
17
Hallo basti1012,
hab mal in der Konsole geschaut. Es scheint tatsächlich so zu sein, dass der Betrag als innerHTML eingetragen ist. Es ist ein Wert zu finden, wenn der Warenkorb gefüllt ist. Der Ausdruck <th id="nggpl-total_field"></th> gibt den Bruttowert aus. Wenn ich zwischen die Tags einen Wert einsetze, wie in Deinem Code, dann rechnet er wunderbar, aber eben nur wenn im php-code fest ein Betrag eingetragen ist. Wenn kein Wert eingetragen ist, gibt dein Code leider nur "NAN" zurück. Grübel, grübel.
Der Shop ist noch nicht online, aber wenn Du die Nerven hast, würde ich die einen Zugang einrichten. Da bräuchte ich aber bitte Deine Email-Adresse.
1.000 Dank.
Beste Grüße Christian
 

SirRichard

Neues Mitglied
22 Juni 2020
6
0
1
17
Hallo lieber m.scatello,
Danke für Dein Feedback. Das Plugin gibt leider den gesuchten Nettowert nicht aus. Aber den Bruttowert, mit dem ich vielleicht weiter rechnen könnte. Mein Problem ist nur, dass ich den nicht auslesen kann. Deshalb mein Versuch hier.
Beste Grüße Christian
 

Sempervivum

Senior HTML'ler
18 Oktober 2016
2.084
404
83
67
SirRichard schrieb:
Mein großes Problem ist nur, dass die Zeile <th id="nggpl-total_field"></th> vom Plugin vorgegeben wird. Hier steckt irgendwie der Wert drin. Ich kann daher nicht einfach hier die 150 reinschreiben. Der Wert muss irgendwie da ausgelesen werden.
Das Skript von Basti tut genau das und liest den Wert dort aus. Das HTML ist nur zur Demo. Dieser Code:
Code:
var MWSt=document.getElementById('nggpl-total_field');
var inhalt=MWSt.innerHTML;// Auslesen
liest den Wert aus, egal was darin steht. Allerdings ist der Variablenname etwas irreführend, weil das nicht die MWSt ist sondern der Bruttobetrag. Wenn daraus die MWSt berechnet werden soll, müsste die Formel lauten:
Code:
var mwst = ((inhalt/116)*16)+parseInt(inhalt);// 16% MWSt berechnen
 

SirRichard

Neues Mitglied
22 Juni 2020
6
0
1
17
Das Skript von Basti tut genau das und liest den Wert dort aus. Das HTML ist nur zur Demo. Dieser Code:
Code:
var MWSt=document.getElementById('nggpl-total_field');
var inhalt=MWSt.innerHTML;// Auslesen
liest den Wert aus, egal was darin steht. Allerdings ist der Variablenname etwas irreführend, weil das nicht die MWSt ist sondern der Bruttobetrag. Wenn daraus die MWSt berechnet werden soll, müsste die Formel lauten:
Code:
var mwst = ((inhalt/116)*16)+parseInt(inhalt);// 16% MWSt berechnen
Hallo Sempervivum,
1.000 Dank! So geht es!
Viele Grüße
Christian
 
Werbung:

Neueste Beiträge