Avatar billede sirtiger Nybegynder
01. august 2008 - 14:02 Der er 18 kommentarer og
2 løsninger

Finde ud af hvilken table et element er i

HEj
Jeg har nogle input elementer som jeg tjekker for værdi. Jeg vil gerne vide hvilken tabel de står i - og om den tabel er synlig. Hvis tabellen ikke er synlig skal værdierne ikke tjekkes. Nogen der har et bud på hvordan jeg kan gøre det - eller kan det ikke lade sig gøre?
Avatar billede wanze Nybegynder
01. august 2008 - 15:14 #1
Det ville nok være nemmere, hvis du blot vidste, hvilket id tabellen har. Det bør du vel også vide? Isåfald kan du bare lave en:

e = document.getElementBydId('tabellensID');
if(e.style.display != "none")
  funktionTilAtValidereIndhold();
Avatar billede sirtiger Nybegynder
01. august 2008 - 15:20 #2
Problemet er at jeg faktisk IKKE ved hvad tabellen hedder. Det genereres dynamisk. Det ville, som du selv skriver, ikke være noget problem hvis jeg bare kendte navnet. Men der kan være flere sub tabeller - hvoraf nogen kan være vist mens andre ikke er.
Jeg kan heller ikke helt finde et sted hvor jeg kan putte ind på selve input elementet hvilken tabel den hører til.
Avatar billede olebole Juniormester
01. august 2008 - 22:19 #3
<ole>

Prøv at lægge et link til siden

/mvh
</bole>
Avatar billede sirtiger Nybegynder
01. august 2008 - 23:18 #4
Jeg har ikke mulighed for at give adgang til siden, den eksisterer kun i udviklingsmiljø. Jeg kan lave en test der viser problematikken?
Avatar billede olebole Juniormester
02. august 2008 - 01:06 #5
Ja, det må du gøre - hvis ikke vi skal have fat i clairvoyante Sibylla fra Solrød Hovedgade  ;o)
Avatar billede roenving Novice
02. august 2008 - 04:43 #6
Men generelt kunne man gætte på, at en getParentOfType-funktion kunne være en løsning ...
Avatar billede sirtiger Nybegynder
19. august 2008 - 12:08 #7
Så har jeg fået lavet en test (og holdt ferie, derfor den lange svartid)

http://www.ymo.dk/javascriptTest.htm

som sagt, så ved jeg ikke hvad tabellen står i hedder. Jeg vil gerne vide om den tabel som indtastningsboxene er i faktisk er synlig. Giver det mening?
Avatar billede w13 Novice
19. august 2008 - 12:16 #8
F.eks. sådan her?

<script type="text/javascript">
function getParentElement(o,sTag){
    while(o.nodeName.toLowerCase()!=sTag){
        if(o.parentNode){
            o=o.parentNode;
        }
        else{
            o=null;
            break
        }
    }
    return o
}
</script>

<table>
<tr><td>Felt1</td></tr>
<tr>
<td onclick="alert(getParentElement(this,'table'))">felt2</td>
</tr>
</table>
Avatar billede w13 Novice
19. august 2008 - 12:25 #9
Eller sådan her:

<script type="text/javascript">
function getParentElement(o,sTag){
    while(o.parentNode&&o.nodeName.toLowerCase()!=sTag)o=o.parentNode;
    if(o.nodeType!=1)o=null;
    return o
}
</script>

<table>
<tr><td>Felt1</td></tr>
<tr>
<td onclick="alert(getParentElement(this,'table'))">felt2</td>
</tr>
</table>

Det er lidt kortere. =)

Hvis der ikke er noget parent-element, som hedder "table", vil der blive returneret "null".
Avatar billede w13 Novice
19. august 2008 - 12:26 #10
Eller:

<script type="text/javascript">
function getParentElement(o,sTag){
    while(o.parentNode&&o.nodeName.toLowerCase()!=sTag)o=o.parentNode;
    return o.nodeType==1?o:null;
}
</script>

<table>
<tr><td>Felt1</td></tr>
<tr>
<td onclick="alert(getParentElement(this,'table'))">felt2</td>
</tr>
</table>

:)
Avatar billede roenving Novice
20. august 2008 - 05:38 #11
nodeName ?-)

-- skal du ikke bruge tagName ?-)

<script type="text/javascript">
//getParent(startElement,"tagName");
function getParent(elm,tN){
  var parElm = elm.parentNode;
  while(parElm.tagName.toLowerCase() != tN.toLowerCase())
    parElm = parElm.parentNode;
  return parElm;
}
</script>
Avatar billede w13 Novice
20. august 2008 - 10:46 #12
Jo :) tagName. Det er lige det med hukommelsen.
Avatar billede w13 Novice
20. august 2008 - 10:47 #13
Den virkede nu fint i IE, men det er vel ikke overraskende. =)
Avatar billede roenving Novice
20. august 2008 - 13:54 #14
*lol*
Avatar billede sirtiger Nybegynder
21. august 2008 - 16:54 #15
Så lykkedes det at få det til at virke - det var smukt.
Er det ikke mest fair at jeg smider lidt point til roenvig også - forstillede mig 15-45 fordeling til w13 som kom med løsningen?
Avatar billede w13 Novice
21. august 2008 - 20:51 #16
Gerne for mig. :)
Avatar billede roenving Novice
22. august 2008 - 00:21 #17
Velbekomme '-)
Avatar billede w13 Novice
22. august 2008 - 12:38 #18
Tak for point! :)
Avatar billede roenving Novice
24. august 2008 - 22:30 #19
-- også jeg takker for point ;~}
Avatar billede olebole Juniormester
24. august 2008 - 22:33 #20
<ole>

Jeg har ikke teste, men er der browsere, det ikke virker i ved brug af nodeName?

/mvh
</bole>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester