Я соглашаюсь с Ryan.
Ваша проблема состоит в том, что "следующее" отделение не является "ребенком" A. Нет никакого пути к HTML или jQuery, чтобы знать, что Ваш "a" элемент связан с дочерним отделением в DOM. Обертывание их и помещение парения на обертке означают, что они связаны.
Обратите внимание на то, что его код не соответствует лучшим практикам, все же. Не устанавливайте скрытый стиль, встроенный на элементах; если у пользователя будет CSS, но не JavaScript, элемент скроется и не будет в состоянии быть показанным. Лучшая практика должна поместить то объявление в document.ready событие.
Нет необходимости зацикливать элементы, просто найдите элемент и удалите его:
ListItem itemToRemove = myDropDown.Items.FindByValue("value");
if (itemToRemove != null)
{
myDropDown.Items.Remove(itemToRemove);
}
Или, если вы знаете индекс элемента, который нужно удалить, используйте метод RemoveAt:
myDropDown.Items.RemoveAt(0);
Но если вы все равно хотите выполнить цикл, вот цикл:
foreach (ListItem item in myDropDown.Items)
{
// your stuff
}
Вы не можете использовать foreach для удаления элементов, так как после удаления элемента коллекция изменяется, и цикл генерирует исключение.
Если вы должны пройти цикл по коллекции для удаления несколько элементов, лучшее решение - вернуться назад по коллекции. Мой C # довольно ржавый, поэтому следующее написано на VB. Должно быть легко преобразовать.
For x As Integer = myDropDown.Items.Count - 1 to 0 Step -1
Dim item As ListItem = myDropDown.Items(x)
If item.TestToSeeIfItShouldBeRemoved = True
myDropDown.Items.RemoveAt(x)
End If
End For