getElementsByName

WRInaute impliqué
Bonjour,

Je fait un p'tit composant dans un dev pro qui doit afficher une div quand on click sur un "a href." Aucun probleme avec ca.

Dans un souci d'accessibilité, j'essaye de rendre invisible cette div en javascript au chargement de la page et non pas avec un display:none direct.

Le code que j'ai pondu marche sur firefox mais pas sous IE, ce qui est assez étrange 8O

Code:
function checkHide(){
	var tab = new Array();
	tab = document.getElementsByName('hide');
	alert('checkHide '+tab.length);
	for(i=0;i<tab.length;i++)
	tab[i].style.display='none';
	
	}
	window.onLoad = checkHide;

C'est bien comme ca qu'il faut l'utiliser la fonction getElementsByName ?
 
WRInaute impliqué
Le problème avec le ID c'est que tu dois en avoir qu'un par page.

Sinon tu peux récupérer par TagName puis assigner rel ou title et vérifier le tout.

a+
 
Nouveau WRInaute
En fait "display: none" est mieux que "visibility: hidden" car il évite les marges et l'affichage du conteneur (donc des scrollbars si le conteneur est conséquent).

La fonction la mieux appropriée est sans doute : getElementById (il n'y a pas de "S", genre getElementsById puisque cette fonction a pour but de récupérer la référence d'UN objet). Voici donc un petit exemple :

Code:
<script type="text/javascript">
function checkHide() {
  var tab = new Array();
  var countElement = parseInt(document.getElementById('countElement').value);
  for(i = 0; i < countElement; i++) {
    document.getElementById('hide_' + i).style.display = 'none';
  }
}

window.onLoad = checkHide;
</script>

Et le code HTML suivant (par exemple)

Code:
<input type="hidden" id="countElement" value="4" />
<div id="hide_0">DIV0</div>
<div id="hide_1">DIV0</div>
<div id="hide_2">DIV0</div>
<div id="hide_3">DIV0</div>

Voilou
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Haut