0
votes

Obtenir la valeur du tableau basé sur la saisie de l'utilisateur à JQuery

J'ai un tableau avec l'alphabet, chaque lettre a une URL attachée avec elle. J'ai aussi une liste de boutons, chacun correspondant à une lettre de l'alphabet.

Je souhaite récupérer la valeur de la matrice (URL) en fonction de laquelle l'utilisateur clique sur lequel l'utilisateur clique sur lequel l'utilisateur peut cliquer sur plusieurs boutons.

Donc, si l'utilisateur clique sur le bouton "C", je veux obtenir pour récupérer l'URL associée à la lettre "C" à partir du tableau "

J'ai pu boucler le #letsters Les enfants de l'élément et obtenez le ID de chaque bouton. J'ai pensé à le comparer contre la matrice en quelque sorte mais je me suis perdue en cours de route.

Je n'ai vraiment aucune solution en vue.

html xxx

javascript xxx


0 commentaires

3 Réponses :


1
votes

Voici un extrait que je reçois tous les liens et joindre un événement de clic à ce moment-là, ce qui enregistre simplement la valeur que la clé correspond à l'ID de bouton cliqué

p>

<div class="col-md-12" id="letters">
   <a href="#" class="btn btn-primary" id="A">A</a>
   <a href="#" class="btn btn-primary" id="B">B</a>
   <a href="#" class="btn btn-primary" id="C">C</a>
</div>


0 commentaires

1
votes

Utilisez Data- * attribut et ajouter Écouteur d'événements sur vos lettres, en cliquant sur Obtenez l'élément cliqué et obtenez la lettre à l'aide de .data () code>.

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <div class="col-md-12" id="letters">
   <a href="#" data-letter="A" class="btn btn-primary" id="A">A</a>
   <a href="#" data-letter="B" class="btn btn-primary" id="B">B</a>
   <a href="#" data-letter="C" class="btn btn-primary" id="C">C</a>
</div>
  <img width="300" id="demo" src="" />


0 commentaires

0
votes

Il est inutile de rédiger des liens dans HTML si vous envisagez d'avoir plus à l'avenir. Sauvez-vous un peu de temps et de les générer de manière dynamique. Fourni ci-dessous est une fonction réutilisable listlnx () code> qui générera code> dans html à partir d'une liste donnée de presque une quantité illimitée d'URL. Les détails complets sont commentés dans la démo.

p>

// An Array of Arrays each sub-array has a key/value pair
let urls = [
  ['A', 'https://example.com/'],
  ['B', 'https://stackoverflow.com'],
  ['D', 'https://stackoverflow.com/users/2813224/zer00ne'],
  ['C', 'https://css-tricks.com'],
];

/*** listLnx()
1st Param: [Array] (see above)
2nd Param: [String] (optional--default: "body") the tag in which the links 
           will be nested within
*/
/*
*A - Reference the parent tag
*B - Instantiate  Map Object from the array. Array is 
     reversed because the links are prepended to parent
*C - Iterate through map with a for...of loop. The       
     entries() method returns an array of key/value pairs
     which is destructured for easy access
*D - An <a> is created with .createElement() method. The 
     remaining statements assemble each link with the
     following: 
     1. an #id
     2. a [href]
     3. text of #id and hostname
     4. block level style
     5. then prepended to parent tag
*/
const listLnx = (array, selector = `body`) => {
  let node = document.querySelector(selector); //A
  let map = new Map(array.reverse()); //B

  for (const [key, url] of map.entries()) { //C
    const a = document.createElement('a'); //D 
    a.id = key; //1
    a.href = url; //2
    a.textContent = `${key} - ${a.hostname}`; //3
    a.style.display = 'block'; //4
    node.prepend(a); //5
  }
}

listLnx(urls);


0 commentaires