2013-03-08 2 views
1

Html:Удалить определенный диапазон элементов JQuery

<select id ="combooptions"> 
      <option id="combostart" value=""></option> 
</select> 

ЯШ:

var str = ""; 
if (combonews.length > 0) 
     for (var i in combonews) { 
      str += "<option value='" + combonews[i][0] + "'>" + combonews[i][1] + "</option>"; 
     } 
    jQuery("#combooptions").append(str); 

Он отлично работает, но теперь я хочу, чтобы удалить те приложили один, оставив первоначальный 1 дополнительный тег, как показано на рисунке выше. Я пробовал:

jQuery("#combooptions").html(''); 
//or 
jQuery("#combooptions").append(''); 
//or 
jQuery("#combostart").append(''); 
//or 
jQuery("#combostart").html(''); 

но без успеха.

Пожалуйста, помогите поблагодарить вас

ответ

3

Поскольку вы дали первый option уникальный идентификатор, просто сделать:

$('#combostart ~ option').remove(); 

What does the "~" (tilde/squiggle/twiddle) CSS selector mean?

+0

Ницца и краткий +1 –

+0

Спасибо, ребята, все это работало, но поскольку вы были первыми, я выбрал ваш @Blazemonger в качестве ответа. понимать – INgeek

3

Чтобы сжать список выбора, вы можете также снизить количество опций:

document.getElementById("combooptions").length = 1; 

С JQuery:

$("#combooptions")[0].length = 1; 

Более общую идею, чтобы удалить «все, кроме первого»:

$("#combooptions :not(:first-child)").remove(); 

Пример: http://jsfiddle.net/kVRpy/

+0

спасибо, что работал также – INgeek

1

Вы можете выбрать все параметры, а затем удалить один из них с помощью блока combostart по вашему выбору. Затем вызовите .remove(), чтобы удалить ненужные параметры.

$('#combooptions option').not('#combostart').remove(); 
+0

спасибо , что работало также – INgeek

0

Попробуйте это:

$('#combooptions').html("<option id='combostart' value=''></option>"); 
Смежные вопросы