Partage
  • Partager sur Facebook
  • Partager sur Twitter

setAttribute(" ", " "); ne fonctionne pas

Sujet résolu
17 novembre 2018 à 11:43:07

Bonjour,

je fait un code simple avant utilisation dans un wordpress.

Bref je fait la fonction setAttribute() qui ne fonctionne pas et me dit que la fonction "is not a fonction" :(

HTML:

<!DOCTYPE html>
<html>
<head>
	<title>title</title>
	<meta charset="utf-8">
	<link rel="stylesheet" type="text/css" href="style.css">

</head>
<body>

	<div class="block1">

		<div class="bt_bb_grid_item_inner">
			<div class="bt_bb_grid_item_post_content">
				<h5 class="bt_bb_grid_item_post_title"><span>Pourvue</span> Titre 1</h5>
			</div>
		</div>

		<div class="bt_bb_grid_item_inner">
			<div class="bt_bb_grid_item_post_content">
				<h5 class="bt_bb_grid_item_post_title">Titre 2</h5>
			</div>
		</div>

		<div class="bt_bb_grid_item_inner">
			<div class="bt_bb_grid_item_post_content">
				<h5 class="bt_bb_grid_item_post_title"><span>Titre</span> 3</h5>
			</div>
		</div>

		<div class="bt_bb_grid_item_inner">
			<div class="bt_bb_grid_item_post_content">
				<h5 class="bt_bb_grid_item_post_title">Titre 4</h5>
			</div>
		</div>




	</div>

<script type="text/javascript" src="script.js"></script>
</body>
</html>

Javascript:

var text = document.getElementsByTagName("span");
text.setAttribute("class","salut");

J'ai bien fait un console.log(text) qui marche.

ça me rend dingue.

-
Edité par FAJITAS 17 novembre 2018 à 11:46:14

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
17 novembre 2018 à 12:16:50

document.getElementsByTagName(String) est au pluriel (getElements). Comme son nom l'indique, cette fonction renvoie plusieurs éléments du type demandé, sous la forme d'une collection, qui peut être vide, typiquement s'il n'y a aucun span dans la page, ou ne contenir qu'un seul item, typiquement s'il n'y a qu'un seul span dans la page.

Pour accéder au premier span (quand on sait d'avance qu'il n'y en a qu'un), on utilise [0] sur la collection:

const text = document.getElementsByTagName("span")[0]

text.setAttribute("class", "salut")

Pour passer sur tous les span de la collection, on utilise une boucle:

for (const text of document.getElementsByTagName("span"))
   text.setAttribute("class", "salut")
  • Partager sur Facebook
  • Partager sur Twitter
17 novembre 2018 à 18:06:28

Bonjour

Au passage, getElementsByTagName() s'applique aussi à un élément HTML, parcourir tout le document n'est pas nécessaire.

monElement.getElementsByTagName('span') ne prendra en compte que les span contenus dans monElement

  • Partager sur Facebook
  • Partager sur Twitter
20 novembre 2018 à 0:24:39

Merci à tous pour ces explications <3
  • Partager sur Facebook
  • Partager sur Twitter