0
votes

comment détecter si une option de sélection existe

comment détecter si une option de sélection existe, (de préférence dans jquery), par exemple:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id='sel'>
<option>lorem</option>
<option>ipsum</option>
</select>
let str = 'lorem';
//if(str exists inside `sel options`){console.log('exists');}


2 commentaires

Vous voulez juste voir s'il existe en tant qu'option disponible dans la liste déroulante via le code?


Vous pouvez utiliser la fonction .filter () pour obtenir des éléments avec le texte requis. alors vous pouvez l'utiliser dans if condition avec .length


4 Réponses :


0
votes

Essayez:

$('#sel').find('option[text="lorem" ');


1 commentaires

let x = $ ('# sel'). find ('option [text = "lorem"]'). length; - ne fonctionne pas



1
votes

Cela vous aiderait-il?

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id='sel'>
  <option>lorem</option>
  <option>ipsum</option>
</select>
let str = 'lorem';

$("#sel option").each(function() {

  var option = $(this).text();

  if (option === str) {
    console.log("Exists");

  }

});


1 commentaires

J'ai également testé cela en utilisant ipsum dans str



1
votes

Recherchez la balise #sel options id + et obtenez tous les sélecteurs qui correspondent à ce sélecteur d'élément. Parcourez les éléments en utilisant pour avec .length sur la liste des éléments. Puis conditionnel pour vérifier si la cible est présente à l'aide de la clé.

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id='sel'>
  <option>lorem</option>
  <option>ipsum</option>
</select>
let str = 'lorem';
let $options = $('#sel option');
$options.each(function(){
  if($(this).text() === str ){
    console.log(str + ' - Exists')
  }
})

JQuery:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id='sel'>
  <option>lorem</option>
  <option>ipsum</option>
</select>
let str = 'lorem';
let options = document.querySelectorAll('#sel option');
for (let i = 0; i < options.length; i++) {
  if (options[i].textContent === str) {
    console.log(options[i].textContent + " - Exists")
  }
}


0 commentaires

0
votes
  1. L'option n'a pas de valeur

    $ ('# sel option'). filter (function () {return $ (this) .html () == "ipsum";}). length> 0

  2. l'option a une valeur

    $ ('# sel option [value = "ipsum"]'). length> 0


2 commentaires

pourquoi pas $ ('# sel option'). text () - si wo valeur


$ ('# sel option'). text () ne fonctionne pas, nous devons d'abord filtrer l'objet option, par fonction de filtre ou sélecteur. $ ('# sel option: contains ("lorem")') peut fonctionner mais il est "contient" et n'est PAS exactement égal