Venant de VB, JavaScript n'est pas très facile à comprendre. S'il vous plaît ne soyez pas négatif, j'ai essayé et cherché des charges mais sans chance. BTW, je crée un contrôle déroulant initialisé à partir d'une liste d'options Select
dans JS.
Code factice:
var col = 'tardis';
var x = '<option value="' + col + '">Very roomy</option>');
Je voudrais ajouter selected
après la valeur de col UNIQUEMENT si col est égal à "tournevis".
J'ai essayé d'utiliser l'instruction IF avec le? et le: mais je n'arrive pas à comprendre. Avoir '' comme fausse valeur ne fonctionne pas. Aucun élément n'est sélectionné et la liste est vide. Supprimez l'instruction IF et tous les travaux.
Toutes les idées et encore une fois, désolé pour la nouveauté.
'<option value="' + col + '"'+ (col === "screwdriver" ? " selected " : "") +'>Very roomy</option>';
var x = '<option value="' + col + '"'
if (col == 'screwdriver') x += ' selected';
x += '>Very roomy</option>';
Quelque chose comme ça:
for (/* stuff */)
{
var x = '<option value="' + col + '" '
+ (col === 'screwdriver' ? 'selected' : '')
+ '>Very roomy</option>';
// snip...
}
Si votre objectif final est d'ajouter des éléments à votre page, manipulez simplement le DOM directement. N'utilisez pas la concaténation de chaînes pour essayer de créer du HTML - quelle douleur! Voyez combien il est plus simple de simplement créer votre élément, au lieu du HTML qui représente votre élément:
var x = document.createElement("option");
x.value = col;
x.text = "Very roomy";
x.selected = col == "screwdriver";
Ensuite, plus tard, lorsque vous placez l'élément dans votre page, au lieu de définir le innerHTML
de l'élément parent, appelez appendChild()
:
mySelectElement.appendChild(x);
J'ai tapé ceci dans ma barre d'URL:
javascript:{ var col = 'screwdriver'; var x = '<option value="' + col + '"' + ((col == 'screwdriver') ? ' selected' : '') + '>Very roomy</option>'; alert(x); }