[js] alle instanties beginnend met str veranderen

Pagina: 1
Acties:

  • hobbeldebobbel
  • Registratie: Februari 2001
  • Laatst online: 15-02-2023
ik heb een lijst met een onbekend aantal divjes met een ID die opgebouwd is uit een vast deel en een getal: <div id="info_456">sgfrg</div>

hoe kan ik nou van alle instatanties met document.getElementById("info_*").style.display = 'none' doen?

?

hier zou een slimme opmerking kunnen staan
maar die staat er niet


  • frickY
  • Registratie: Juli 2001
  • Laatst online: 17-02 09:21
code:
1
2
3
getElementByTagName("div")
if(getAttribute("id").substring(0, 5) == "info_")
  .style.display...


Zelf nog wat varretjesi nvullen en een for er tussen en je zou er moeten zijn?

[ Voor 12% gewijzigd door frickY op 19-06-2006 17:28 ]


  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
Een class definiëren en die dan aanpassen?
HTML:
1
<div id="info_456" class="divtochange">sgfrg</div>

[ Voor 47% gewijzigd door moozzuzz op 19-06-2006 17:50 ]


  • Koeniepoenie
  • Registratie: Oktober 2003
  • Laatst online: 14-11-2025
Idee van frickY iets verder uitgewerkt:
JavaScript:
1
2
3
4
5
6
7
8
9
function doInfoDing() {
    objs = document.getElementByTagName('div');
    for (var i=0, j=objs.length; i<j; i++) {
        obj = objs[i];
        if (obj.id.substring(0,5) == 'info_') {
            obj.style.display = 'none';
        }
    }
}

Parse error: syntax error, unexpected GOT_USER in https://gathering.tweakers.net on line 1337


  • hobbeldebobbel
  • Registratie: Februari 2001
  • Laatst online: 15-02-2023
moozzuzz schreef op maandag 19 juni 2006 @ 17:49:
Een class definiëren en die dan aanpassen?
HTML:
1
<div id="info_456" class="divtochange">sgfrg</div>
en hoe wil je dan die class aanpassen met javascript?
ik kan wel met documsdfsd.className de class veranderen van het object....
maar dan moet ik nog steeds alles door lopen
Koeniepoenie schreef op dinsdag 20 juni 2006 @ 14:34:
Idee van frickY iets verder uitgewerkt:
JavaScript:
1
2
3
4
5
6
7
8
9
function doInfoDing() {
    objs = document.getElementByTagName('div');
    for (var i=0, j=objs.length; i<j; i++) {
        obj = objs[i];
        if (obj.id.substring(0,5) == 'info_') {
            obj.style.display = 'none';
        }
    }
}
dit ga ik eens even beter bekijken en verder uitwerken

aight it works... met een kleine S er tussen ;)
JavaScript:
1
2
3
4
5
6
7
8
9
objs = document.getElementsByTagName('table');
                    
                     for (var i=0; i<objs.length; i++) {
                         obj = objs[i];
                        
                        if (obj.id.substring(0,5) == 'info_') {
                            obj.style.display = 'none';
                        }
                     } 

thanx :)

[ Voor 81% gewijzigd door hobbeldebobbel op 20-06-2006 21:16 ]

hier zou een slimme opmerking kunnen staan
maar die staat er niet


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 10:01

chem

Reist de wereld rond

Klaar voor een nieuwe uitdaging.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Het voordeel van een CSS class is wel dat je leuke dingen kan doen met CssQuery, XPath e.d. en anders scoor je even een goede getElementsByClassName ;)

Overigens is indexOf sneller dan substr en substring bij kleinere strings, en kan het itereren ook sneller en eleganter:
JavaScript:
1
2
3
4
5
6
7
8
// scope! altijd netjes declareren!
var objs = document.getElementsByTagName('table'), obj, i = 0;

while ((obj = objs[i++]))
{
    if (obj.id.indexOf('info_') === 0)
        obj.style.display = 'none';
}

;)

[ Voor 5% gewijzigd door crisp op 20-06-2006 22:00 ]

Intentionally left blank

Pagina: 1