jQuery .inArray() toujours vrai?
Je suis en train d'utiliser inarray mais sa revient toujours vrai? Des idées? (tous les li sont affichées)
$("#select-by-color-list li").hide();
//get the select
var $dd = $('#product-variants-option-0');
if ($dd.length > 0) { //make sure we found the select we were looking for
//save the selected value
var selectedVal = $dd.val();
//get the options and loop through them
var $options = $('option', $dd);
var arrVals = [];
$options.each(function(){
//push each option value and text into an array
arrVals.push({
val: $(this).val(),
text: $(this).text()
});
});
};
//This is where it is returning true...
if($.inArray('Aqua', arrVals)) {
$("#select-by-color-list li#aqua").show();
};
if($.inArray('Army', arrVals)) {
$("#select-by-color-list li#army").show();
};
OriginalL'auteur Charles Marsh | 2010-12-29
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour ce faire:
ou ceci:
Le
$.inArray()
méthode renvoie la0
en fonction de l'indice de l'élément. Si il n'y a aucun élément, elle retourne-1
, qui leif()
déclaration de considérer commetrue
.De la documentation:
EDIT: au Lieu de pousser les deux valeurs dans le tableau, comme un objet, il suffit d'utiliser l'un ou l'autre, de sorte que vous avez un Tableau de chaînes de caractères à partir de laquelle vous pouvez construire un multiple sélecteur.
Une façon est comme ceci:
Si le Tableau ressemble:
L'résultant sélecteur ressemblera:
voici la liste de sélection...<select class="seule option sélecteur" id="product-variantes-option-0"><option value="canon de fusil Heather">canon de fusil Heather</option><option value="Kelly Green">Kelly Vert</option><option value="Blackberry">Le</option></select>
C'est parce que le
arrVals
Tableau ne contient pas de'Army'
ou'Aqua'
, mais au lieu de cela contient un objet où lekey
ouvalue
(pas sûr) a la Chaîne que vous souhaitez.Comment puis-je fonder une instruction if?
Est-il une raison quelconque vous avez besoin de la
val()
ettext()
que la paire clé/valeur? Pourquoi ne pas simplement l'une ou de l'autre? Si vous faites cela, vous pouvez réellement sauter leinArray
, et tout simplement construire un multiple sélecteur pour sélectionner tous les éléments dans le Tableau. Je vais vous donner un exemple dans une minute.OriginalL'auteur user113716