JavaScript: déclaration de type IIF
Venant de VB, JavaScript n'est pas très facile à comprendre. 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 fictif:
var col = 'tardis';
var x = '<option value="' + col + '">Very roomy</option>');
Je voudrais ajouter selected
après la valeur de col seulement si col est égal à 'tournevis'.
J'ai essayé d'utiliser l'instruction if avec l' ? et le: mais ne peut pas sembler obtenir ma tête autour d'elle. Avoir " comme le fait la fausse valeur pas de travail. 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, désolé pour le newb-ness.
5 réponses
'<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 ceci:
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";
, Puis, plus tard, lorsque vous mettez l'élément de votre page, au lieu de définir la 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); }