/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Finde <a> i et <td>i nestede <tables>
Fra : Anders Jacobsen


Dato : 08-05-07 19:46

Hejsa

Jeg skal gennemløbe noget html via javascript for at dinde indholdet af et
<a> tag. Strukturen af dokumentet er noget lignende

<html>
<body>
<table id="table a...c">....</table>

<table id="table d">
<tr><td></td></tr>
<tr>
<td>
<table id="table e">
<tbody>
<tr>
<td><a href="DETTE TEXT SKAL JEG BRUGE"></td>
</tr>
<tr>
<td><a href="DETTE TEXT SKAL JEG BRUGE"></td>
</tr>
</tbody>
</table>
</table>
</body>
</html>

Der er ikke flere id end dette tilrådighed. Det hele drejer sig om "tabel e"
som indeholder de 2 <a>´er (men der kan være mange). Jeg skal på en eller
anden måde få trukket teksten "DETTE TEXT SKAL JEG BRUGE" ud.

Men ide gik på at bruge
var tables = document.GetElementsByTagName('table');

Og så ittere igennem disse på en eller anden måde. Men
document.GetElementsByTagName('table').length = 0...?

Så jeg er faktisk helt låst. Jeg bruger IE 7.0 men det skulle også gerne
virke på Fire fox 1.5+

Ser frem til nogle forslag om hvordan jeg kommer videre.

Mvh
Anders


 
 
Christian Hansen (09-05-2007)
Kommentar
Fra : Christian Hansen


Dato : 09-05-07 07:26

Anders Jacobsen wrote:

> Der er ikke flere id end dette tilrådighed. Det hele drejer sig om
> "tabel e" som indeholder de 2 <a>´er (men der kan være mange). Jeg skal
> på en eller anden måde få trukket teksten "DETTE TEXT SKAL JEG BRUGE" ud.
>
> Men ide gik på at bruge
> var tables = document.GetElementsByTagName('table');
>
> Og så ittere igennem disse på en eller anden måde. Men
> document.GetElementsByTagName('table').length = 0...?

Du skriver stort begyndelsesbogstav ved getElementsByTagName - det skal
være lille - altså getElementsByTagName og ikke GetElementsByTagName

Du kan jo kalde getElementsByTagName direkte på det implicerede
table-element, så får du kun de anchors, du er interesset i:

<script type="text/javascript">
var a = document.getElementById("table e").getElementsByTagName("a");
for(var c = 0; c < a.length; c++ ) {
alert(a[c].href);
}
</script>


Mvh Christian
<http://chrsen.dk/>

Anders Jacobsen (09-05-2007)
Kommentar
Fra : Anders Jacobsen


Dato : 09-05-07 15:56

> <script type="text/javascript">
> var a = document.getElementById("table e").getElementsByTagName("a");
> for(var c = 0; c < a.length; c++ ) {
> alert(a[c].href);
> }
> </script>

Hmmm. var a = document.getElementById("table e") er = NULL. På <div> virker
det fint?

Kan det være fordi det hele faktisk er pakket ind i et form element (glemte
jeg i den opbrindelige post)

Jeg har også prøvet at sige:
document.aspnetform.getElementById("table e") .... Dette er = null
document.forms[0].getElementById("table e") .... Dette er = null

<form name="aspnetform" ID="aspnetform">
<< .... MINE TABELLER....>>
</form>


Christian Hansen (09-05-2007)
Kommentar
Fra : Christian Hansen


Dato : 09-05-07 19:01

Anders Jacobsen wrote:

> Hmmm. var a = document.getElementById("table e") er = NULL. På <div>
> virker det fint?

Det er svært at komme din fejl nærmere uden rent faktisk at se din kode.
Jeg lagde også mærke til, at du ikke havde afsluttet dine anchor-tags i
koden - det skal man, men om det giver anledning til din fejl ved jeg ikke

> Kan det være fordi det hele faktisk er pakket ind i et form element
> (glemte jeg i den opbrindelige post)

Nej

> Jeg har også prøvet at sige:
> document.aspnetform.getElementById("table e") .... Dette er = null
> document.forms[0].getElementById("table e") .... Dette er = null

Du skal bruge getElementById direkte på document-objectet.

Her er den kode jeg testede på - et mindre tilrettet klip af det, du pastede

<http://www.chrsen.dk/fundanemt/files/scripter/javascript/misc/getElementsByTagName.html>

Vær også opmærksom på at id-er ikke må bestå af flere ord, men skal være
et enkelt ord. "table e" er altså ikke ok, men "table_e" er fint.

Når du har problemer med DOM og js, er det første du bør gøre, at
validere din side på <http://validator.w3.org/>. Først når din side
validere, kan du lave en fornuftig fejlfinding.

Mvh Christian

Anders Jacobsen (09-05-2007)
Kommentar
Fra : Anders Jacobsen


Dato : 09-05-07 20:49

> Det er svært at komme din fejl nærmere uden rent faktisk at se din kode.
> Jeg lagde også mærke til, at du ikke havde afsluttet dine anchor-tags i
> koden - det skal man, men om det giver anledning til din fejl ved jeg ikke

Ahhhh... Fandt ud af det. Scriptet skulle placeres UNDER det html det skulle
søge i.

Da jeg placerede din kode nederst på siden virkede alting lige pludseligt.
Så efter viderbearbejdning kan jeg nu det jeg ønskede!

Mange tak for hjælpen Christian

Mvh
Anders


Henrik Stidsen (10-05-2007)
Kommentar
Fra : Henrik Stidsen


Dato : 10-05-07 10:54

On 9 Maj, 21:48, "Anders Jacobsen" <n...@none.dk> wrote:
> Ahhhh... Fandt ud af det. Scriptet skulle placeres UNDER det html det skulle
> søge i.

> Da jeg placerede din kode nederst på siden virkede alting lige pludseligt.

Det er fordi DOM'en lige skal være opbygget før du kan begynde at søge
i den - eller, det element du skal finde skal i hvert fald lige være
tilføjet :)

Jeg plejer at afvente og først køre DOM operationer når siden er
færdigloadet.


Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31962
Nyheder : 719565
Indlæg : 6408173
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste