Avatar billede LeFett Nybegynder
02. marts 2009 - 13:24 Der er 8 kommentarer

Two dim. array

Hej

Jeg har et værktøj der laver en hjemmeside med en tabel, der består af 3 kolonner og 3 rækker, alle af typen "Button" (hvilket er et inputfelt og ikke en knap).

function arg2(){
  var buttonsArr = document.getElementsByTagName('BUTTON');
  for(x=1;x<buttonsArr.length;x++){
    but = buttonsArr[x];
    if (but.attributes.onclick.value !== 'null'){
      a = but.attributes.onclick.value.replace(/'/g,"");
      b = a.split('CHARACTERISTIC');
      c = b[1].split(',');
      IObj = c[1];
      f = getField(IObj);
      f.value = '#';
    } //IF
  } //FOR
} //function

buttonsArr.length er 9 hvilket er ok
but.attributes.onclick.value indeholder en lang streng, hvor det kun er den sidste del jeg skal have fat i.

Jeg skal have indsat "#" i alle 9 felter.

min funktion indsætter kun "#" i den nederste række(tror den kører samme række igennem 3 gange).

Jeg går ud at jeg skal have lavet det om til et 2 dim. array(?), men hvordan gør jeg det?

Mvh.

Steffen
Avatar billede majbom Novice
02. marts 2009 - 13:34 #1
kan man se siden?
Avatar billede olebole Juniormester
02. marts 2009 - 15:09 #2
<ole>

Husk, at tagName er i lowercase, når du kalder med getElementsByTagName:
    var buttonsArr = document.getElementsByTagName('BUTTON');

Udtrykket:
  but.attributes.onclick.value

- har jeg svært ved at få mening ud af. Hvad vil du med det?

Vi må nok også (som minimum) se din 'getField' funktion

/mvh
</bole>
Avatar billede olebole Juniormester
02. marts 2009 - 15:09 #3
- og
    var buttonsArr = document.getElementsByTagName('BUTTON');

- skulle derfor se sådan ud:
    var buttonsArr = document.getElementsByTagName('button');  ;o)
Avatar billede LeFett Nybegynder
03. marts 2009 - 07:50 #4
function getField(IObj){
fieldName = '';
var buttons = document.getElementsByTagName('button');
//alert(buttons.length)
for(i=0;i<buttons.length;i++){
    button = buttons[i];
    if (button.attributes.onclick.value.indexOf(IObj)!= -1) {
      fieldName = button.id.substring(0,button.id.indexOf('-'));
  //  break;
    }
  }
if (fieldName !== ''){
field = document.getElementById(fieldName);
} else {
//alert('Unable to find field for infoobject ' + IObj);
}
return field;
}



but.attributes.onclick.value henter den lange streng:
http://tinypic.com/view.php?pic=2wmjlaa&s=5

Der er sikert dem der er bedre, men denne virker.
Avatar billede olebole Juniormester
03. marts 2009 - 09:24 #5
Du bliver nødt til at fortælle, hvad du mener med:
    but.attributes.onclick.value henter den lange streng:
    http://tinypic.com/view.php?pic=2wmjlaa&s=5

Hvor hentes 'den lange streng'? Udtrykket 'but.attributes.onclick.value' giver som sagt absolut og overhovedet ingen mening i nærheden af JavaScript. Hvis det virker til noget somhelst, er det ren og skær uheld  =)
Avatar billede LeFett Nybegynder
03. marts 2009 - 10:04 #6
Hej

ok :o)
Den er taget fra et eksisterende script SAP har lavet, så jeg har
bare "lånt" lidt. Nå vi beder programmet om at lave en htmltabel, så laver den en fandes masse "kode" for at forbinde de felter i vores SQLtabeller med HTMltabellen. Hvert felt i min htmltabel(som indeholder inputfelter til noget budget) indeholder en masse opysninger fra SAP, bla. feltet fra SQltabellen. Som sagt jeg er ikke sikker på, at det er den rigtige kommando at bruge, men den virker :o)

Jeg er "bare" ude efter at mit script sætter '#' i alle 9 felter og ikke kun de tre sidste. Det lader til, at den fint finder ud af at der er ni felter, men den kører den sidste række igennem tre gange og ikke de tre rækker én gang.
Avatar billede olebole Juniormester
03. marts 2009 - 10:12 #7
Jeg kommer vist ikke videre uden hele koden  =)
Avatar billede majbom Novice
04. november 2010 - 11:18 #8
kan vi lukke hér?
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