Werte eine Liste zusammenzählen

Ichbinalex

Erfahrenes Mitglied
Ich möchte ein Skript erstellen für Greasemonkey. Wie die Überschrift schon sagt möchte ich alle Werte einer Liste zusammenrechnen. Und anschließend den Wert in einer Alert Box ausgeben.

So sieht der Quelltext von der Liste aus.
Code:
<td></td>
<td>
<a href="world.asp?cty=45">Birmingham</a>
, 10. Nord
</td>
<td>
</td>
<td align="right">107.600</td>
<td align="right">
</td>
</tr>
<tr>
<td>
<img width="1" height="1" border="0" alt="spacer" src="/pics/empty.gif"/>
</td>
<td colspan="5">
<img width="100%" height="1" src="/pics/lineWhite.jpg"/>
</td>
</tr>
<tr>
<td/>
<td>Birmingham1</td>
<td>
</td>
<td>
</td>
<td align="right">38.000</td>
<td align="right">
</td>
</tr>
<tr>
<td>
</td>
<td colspan="5">
</td>
</tr>
<tr>
<td/>
<td>Birmingham1</td>
<td>
<a href="world.asp?cty=45">Birmingham</a>
, 10. Nord
</td>
<td align="right">21.600</td>
<td align="right">

Nun möchte ich die Werte 107.600 ; 38.000; 21.600 zusammenzählen und in eine Alert-Box ausgeben
 
Hi,

um dein Vorhaben zu realisieren, musst du die Zellen identifizieren können, in denen die Werte stehen, die addiert werden sollen. Eine Möglichkeit wäre es, diese mit einer Klasse auszuzeichnen.

Im Script selbst ermittelst du mit Hilfe der Methode getElementsByTagName alle TD-Elemente der Tabelle. In einer Schleife durchläufst du die Zellen und prüfst mit der String-Methode search die Eigenschaft className, ob der Klassenname enthalten ist, den du zum Identifizieren vergeben hast. Im Erfolgsfall wird der Inhalt (innerHTML) der Zelle zum Ausgabewert addiert.

Vielleicht hilft dir das weiter.

Ciao
Quaese
 
Also eine Klasse ist gegeben hab wohl nicht alles kopiert :(

Code:
<tr>
<td/>
<td class="ValueOptionTitle">Nicht von Bedeutung</td>
<td class="ValueOptionTitle">Nicht von Bedeutung</td>
<td class="ValueOptionTitle">Nicht von Bedeutung</td>
<td class="ValueOptionTitle" align="right">Stärke</td>
<td class="ValueOptionTitle" align="right">Nicht von Bedeutung</td>
 
Wie in der Schule: ich werds ma vorsagen wenn du das so wolltest:
PHP:
<td></td>
<td>
<a href="world.asp?cty=45">Birmingham</a>
, 10. Nord
</td>
<td>
</td>
<td align="right" id="id1">107.600</td>
<td align="right">
</td>
</tr>
<tr>
<td>
<img width="1" height="1" border="0" alt="spacer" src="/pics/empty.gif"/>
</td>
<td colspan="5">
<img width="100%" height="1" src="/pics/lineWhite.jpg"/>
</td>
</tr>
<tr>
<td/>
<td>Birmingham1</td>
<td>
</td>
<td>
</td>
<td align="right" id="id2">38.000</td>
<td align="right">
</td>
</tr>
<tr>
<td>
</td>
<td colspan="5">
</td>
</tr>
<tr>
<td/>
<td>Birmingham1</td>
<td>
<a href="world.asp?cty=45">Birmingham</a>
, 10. Nord
</td>
<td align="right" id="id3">21.600</td>
<td align="right">
<script language="Javascript">
   vari_1 = document.getElementById("id1").innerHTML;
   vari_1 = parseInt(vari_1.replace(".", ""));
   vari_2 = document.getElementById("id2").innerHTML;
   vari_2 = parseInt(vari_2.replace(".", ""));
   vari_3 = document.getElementById("id3").innerHTML;
   vari_3 = parseInt(vari_3.replace(".", ""));
   erg = vari_1+vari_2+vari_3;
   alert(erg);
</script>

Sry keine Zeit zum testen. Arbeite damit

MFG
Mark Paspirgilis
 
Hi,

ich hatte es etwas flexibler gemeint. Die Zelle, die einen Wert enthält, der in die Berechnung eingehen soll, erhält die Klasse.

Beispiel:
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
  <!--
var strClassName = "countTD";

function calcList(strID){
  // Tabellenobjekt
  var objTable = document.getElementById(strID);
  // Kollektion mit allen Zellen der Tabelle
  var arrTD = objTable.getElementsByTagName("td");
  // Variable für Summe
  var dblValue = 0;

  // Alle Zellen der Tabelle durchlaufen
  for(var i=0; i<arrTD.length; i++){
    // Falls der Klassenname der aktuellen Zelle dem gesuchten entspricht
    if(arrTD[i].className.search(new RegExp(strClassName)) != -1)
      dblValue += Number(arrTD[i].innerHTML);
  }
  alert(dblValue);
}
 //-->
</script>
</head>
<body>
<button onclick="calcList('tableID');">calcList</button>
<table border="1" id="tableID">
  <tr>
    <td>&nbsp;</td>
    <td>
      <a href="world.asp?cty=45">Birmingham</a>
      , 10. Nord
    </td>
    <td>&nbsp;</td>
    <td align="right" class="countTD">107.600</td>
    <td align="right">&nbsp;</td>
  </tr>
  <tr>
    <td><img width="1" height="1" border="0" alt="spacer" src="/pics/empty.gif"/></td>
    <td colspan="4"><img width="100%" height="1" src="/pics/lineWhite.jpg"/></td>
  </tr>
  <tr>
    <td>Birmingham1</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td align="right" class="countTD">38.000</td>
    <td align="right">&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td colspan="4">&nbsp;</td>
  </tr>
  <tr>
    <td>Birmingham1</td>
    <td>
      <a href="world.asp?cty=45">Birmingham</a>
      , 10. Nord
    </td>
    <td>&nbsp;</td>
    <td align="right" class="countTD">21.600</td>
    <td align="right">&nbsp;</td>
  </tr>
</table>
</body>
</html>
Ciao
Quaese
 

Neue Beiträge

Zurück