2011-01-07 4 views
1

J'ai une fonction qui supprime toutes les options d'une liste déroulante à l'exception de la première. Cette fonction est mise à jour chaque fois qu'une autre liste déroulante est modifiée, et ajoute d'autres éléments en fonction de ce que l'autre liste déroulante est sélectionnée. Mon problème est que je veux toujours garder le premier élément, mais il le supprime chaque fois que j'appelle la fonction plus que la première fois. Quelle est la meilleure façon de le faire?Fonction jQuery appelée plusieurs fois, ne supprimer qu'une seule fois

function updateMountingMethod(){ 

var selectedVal = $('#attrib-13 option:selected').text().split(" ")[0]; 
var optionChildren = $("#attrib-7").children(":not(:first-child)").clone(); 

$("#attrib-7").children(":not(:last-child)").remove(); 


    $.each(optionChildren, function(){ 


    if ($(this).text().split('|')[1]!=undefined) 
    { 
    var values = $(this).text().split('|')[1]; 

    if(values.substring(1,3) == selectedVal) 
    { 

    $("#attrib-7").append($(this).text($(this).text().split("|")[0]+" "+$(this).text().split("|")[2])); 
    } 
    } 


}) 
} 
+0

Il serait très utile que vous fournissiez un exemple complet du problème, y compris HTML. Beaucoup de gens ici aiment aussi offrir un exemple de travail [jsFiddle] (http://jsfiddle.net) en plus du code dans la question. (Vous pouvez choisir votre bibliothèque dans jsFiddle sur la gauche.) Juste une pensée. – user113716

Répondre

0
document.getElementByID('attrib-7').options.length = 1; 

cela supprime tous, mais la première option dans la liste de sélection. pas sûr que l'équivoque JQuery.

Questions connexes