CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Récupération de string dans innerHTML

axrevi
axrevi
Niveau 10
24 janvier 2012 à 01:35:05

Salut :noel:

Je vais essayer de faire court.

Via un petit script dans un code html, je récupère dans une variable une chaîne de caractères. Et j'aimerais que cette chaîne de caractères soit ensuite insérée dans l'html d'un bloc. Sauf qu'au lieu de ça, c'est tout bêtement le nom de la variable qui est prise comme chaîne de caractères.

Concrètement, l'utilisateur clique, par exemple, sur le titre "stratosfear". Je crée une variable "titre" qui récupère la chaîne de caractères "stratosfear" et rajoute ".mp3".
Donc titre = stratosfear.mp3

J'ai un petit lecteur audio html5, qui est dans un bloc div (que je récupère dans une variable "audio").
L'innerHTML du bloc div vaut ici <audio src="" controls></audio>

Je veux récupérer la valeur de la variable titre, et l'insérer de cette façon :
audio.innerHTML = '<audio src = :d) titre :g) controls></audio>';

Au lieu de prendre la valeur de la variable titre, il prend la propre chaîne de caractères "titre" :hum:

Pour finir voici donc le code pour mieux comprendre :

<div class="bloc">
<div class="audio"><audio src="" controls></audio></div>
<p class="morceau">stratosfear</p>
</div>
<script>
var audio = document.querySelector (".audio");
var morceau = document.querySelector (".morceau");

morceau.onclick = function () {
var titre = morceau.innerHTML + ".mp3";
audio.innerHTML = '<audio src=titre controls></audio>';
alert (audio.innerHTML);
};
</script>

Merci de m'éclairer :noel:

axrevi
axrevi
Niveau 10
24 janvier 2012 à 01:54:42

Ah tiens je viens de me rendre compte d'une seconde erreur. Le querySelector ne récupère que le premier élément. Moi j'aimerais qu'il récupère tous les éléments de classe "morceau" et qu'ensuite lorsqu'on clique sur un morceau qu'une variable récupère le morceau cliqué.

Arf :-(

deepblue
deepblue
Niveau 16
24 janvier 2012 à 10:52:28

Pour le problème 1, c'est simplement un problème de concaténation : audio.innerHTML = '<audio src="'+titre+'" controls></audio>';
Pour ton querySelector, la doc dit que ça ne retourne que le premier élément trouvé https://developer.mozilla.org/En/DOM/Document.querySelector donc tu devras utiliser autre chose.

axrevi
axrevi
Niveau 10
24 janvier 2012 à 15:14:39

Merci !

Aucune idée sur quel procédé suivre ? Là ça dépasse mes connaissances je crois :noel:
Je vais tout de même chercher, ça ne doit pas être si compliqué que ça.

deepblue
deepblue
Niveau 16
24 janvier 2012 à 15:51:23

Utilise une bibliothèque type jQuery et tu pourrais utiliser des choses type $('.maClasse')

axrevi
axrevi
Niveau 10
26 janvier 2012 à 05:14:09

Yeeaaah ! :noel:
Au début j'avais la flemme de m'y mettre. Finalement j'ai réussi en une heure et demie, je sais pas si je dois être fier de moi, mais je suis content :noel:

Merci beaucoup deepblue :noel:

axrevi
axrevi
Niveau 10
26 janvier 2012 à 05:15:28

Ah et si ça peut aider des gens, voici le script

<script>
$(function(){
$(".morceau").click(function () {
var morceau = $(this).text() + ".mp3";
$(".audio").html('<audio src="'+morceau+'" controls></audio>');
});
});
</script>

Minuscule et diaboliquement efficace :bave:

deepblue
deepblue
Niveau 16
26 janvier 2012 à 06:49:28

enjoy :ok:

deepblue
deepblue
Niveau 16
26 janvier 2012 à 11:32:57

Oui ça vaut le coup. Pour avoir écrit des kilomètre de javascript pur et dur, s'affranchir des problèmes de compatibilité et de réinvention de la roue fait gagner un temps considérable.
Ensuite, tu le mets ou tu veux dans ton code. Les grands théoriciens de l'optimisation toussa toussa te parleront de l'insertion des js avant la balise fermante de body.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment