2010-06-05 3 views
1
$('#remove').click(function() { 
     var foo = []; 
     $('#FeatureLists :selected').each(function(i, selected) { 
      foo[i] = $(selected).text(); 
      alert(foo[i]); 
      if (foo[i] != "Add") 
       return !$('#FeatureLists option:selected').remove(); 
      if (foo[i] != "Edit") 
       return !$('#FeatureLists option:selected').remove(); 
     }); 

    }); 

У меня есть шесть элементов в моем выборе, в котором 4 из них добавляют, редактируют, удаляют вид, это многосегментный список, я не хочу, чтобы пользователь удалял эти 4 предмета, кроме того, они могут удалить любой предмет. как я это сделаю? это не происходит в вышеуказанном кодеasp.net mvc jquery remove select list item

ответ

2

Прежде всего, на основе вашего кода примера массив foo не представляется необходимым. Во-вторых, если заявление должно включать в себя все элементы, которые должны быть исключены при OR условиях, как показано ниже:

if (foo[i] == "Add" || 
    foo[i] == "Edit" || 
    foo[i] == "Delete" || 
    foo[i] == "View") 
{ 
    return;    
} 
else 
{ 
    $(selected).remove(); 
} 
1

Попробуйте также. Простой код одной строки и немного быстрее

$(document).ready(function() { 
     $("input").click(function(event) { 
      var foo = []; 
      $('#FeatureLists :selected').each(function(i, selected) { 
       foo[i] = $(selected).text(); 
       if (foo[i] != "Add" && foo[i] != "Edit" && foo[i] != "Delete" && foo[i] != "View") return $(selected).remove(); 
      }); 
     }); 
     });