<div> um <p> legen damit JS auf "id" bzw. "name" anspringt?!
n0b0dy
- javascript
tagchen leutz ... lang nimmer gsehn ;)
also heut hab ich folgendes prob: ich will einen text dynamisch machen! ziel ist folgendes -> der besucher meiner HP soll die möglichkeit haben, einzelne wörter durch eingeben ihrer ID und noch zusätzliche optionen (z.B. schriftgröße,farbe,schriftart, etc...) zu verändern. am anfang hab ich es nur mal bei der schriftgröße belassen um den überblick am anfang zu behalten ^^ ... bisher hab ich immer versucht über JS auf ein <p> zuzugreifen welchem ich einen namen bzw. id gegeben hab. da allerdings immer und immerwieder fehlermeldungen kamen ("Objekt erwartet..." und ich am verzweifeln war, hab ich endlich begriffen dass es wahrscheinlich daran liegt ;)
im moment sieht alles noch so aus:
<form name="changetable">
<table border="1" width="567">
<tr>
<td width="250"><p align="center">Ich</p></td>
<td width="250"><p align="center">bin</p></td>
<td width="250"><p align="center">total</p></td>
<td width="350"><p align="center">dynamisch!</p></td>
</tr>
<tr>
<td width="250"><p align="center">(ID = dynword1)</p></td>
<td width="250"><p align="center">(ID = dynword2)</p></td>
<td width="250"><p align="center">(ID = dynword3)</p></td>
<td width="350"><p align="center">(ID = dynword4)</p></td>
</tr>
<tr>
<th colspan="4">
<input size="8" type="text" name="wortid" value="Wort-ID">
<input size="10" type="text" name="wortgroesse" value="Schriftgröße">
<input type="button" name="wortaendern" value="Schrift verändern" onclick="JavaScript:dyntext()">
</th>
</tr>
</table>
</form>
nun wollte ich eben wissen ob und inwiefern es möglich ist mit einem <div> (oder etwas anderem ;) auf jedes einzelne Wort zuzugreifen?
ich hoffe ihr blickt da durch und habt ein paar gescheite ratschläge parat?!
PS: hab schon auf SELFHTM gesucht aber das <div> Zeugs net gefunden ;)
thx
hab sowas änliches gestern gefragt:
Beste Antwort von Herbalizer
Hi!
Mit TagName sprech ich doch alle Tags derselben Sorte an?
Ja, wendest du die Methode auf eine Tabelle an, so werden nur die Elemente gespeichert, welche Kindelemente der Tabelle sind, sprich nur die td-Elemente welche in genau dieser Tabelle vorkommen:
var tabelle = document.getElementById("tabelle"); // liefert eine Tabelle
var zellen = tabelle.getElementsByTagName("td"); // liefert ein Array mit 4 td-Elementen
Beispieltabelle:
<table id="tabelle">
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
Gruß Herbalizer
--> Also ansprechen mit:
zellen[x].style.Irgendeiner = "";
oder auch:
zellen[x].className = "neueKlasse";
Tagchen ...
yoyo das hat jetzt schon einigermaßen geklappt. Aber! Ein Problem gibts immernoch ... ich habe wie gesagt eine Tabelle mit 3 zeilen ... die Oberen 2 Zeilen sind in 4 Spalten aufgeteilt .. in der 3ten Zeile in der meine Buttons und Inputs stehen habe ich einen colspan="4" damit dass auch alles seinen Platz hat. Nur wenn ich jetzt versuche auf das erste textfeld in der <th> zuzugreifen, kommt immer "objekt erwartet" . Hier nochmal einige Codeschnipsel:
hier der JS:
<script>
function dyntext()
{
var tabelle = document.getElementById("changetable");
var zellen = tabelle.getElementsByTagName("td");
var zellen2 = tabelle.getElementsByTagName("th");
if(zellen2[0].wortid.value = "dynword1");
zellen[0].style.fontSize = "35";
else
alert('äeehm passt netta');
}
}
</svript>
ich habe versucht über "zellen2[0].wortid.value" auf die value des ersten textfeldes zugriff zu bekommen. Allerdings meckert er da immer. Da ich meine Buttons und Inputs so lassen will wie sie sind und nicht jeden einzeln in eine Spalte packen, brauche ich jetzt einen Befehl um wieder auf dieses Textfeld zu kommen...
gepeilt? thx für evtl. antworten