2012-02-12 4 views
10

у меня динамический список, который выглядит следующим образом:Удаление конкретного элемента из списка с JQuery

<ul> 
<li class="border" id="tl_1">Text1</li> 
<li class="border" id="tl_2">Text2</li> 
<li class="border" id="tl_3">Text3</li> 
</ul> 

Список может иметь больше элементов, чем эти три.

Когда кто-то нажимает на определенную кнопку, я хочу это, например. «tl_2» будет удален из списка. Я попробовал ти этих команд JQuery, но не из них работал:

$('#tl_2').remove(); 

или

$('li').find('tl_1').remove(); 

Как я могу решить эту проблему?

+1

Показать, что вы пробовали, он должен был сработать ... – gdoron

+0

Обратите внимание, что нет необходимости «находить» элемент по 'id'.'id' является уникальным – gdoron

+0

@Torben, когда вы говорите' dynamic', вы имеете в виду, что элементы списка динамически заполняются через какой-либо запрос, возможно * после того, как код вашего вопроса запущен? –

ответ

-1

У вас должна быть ошибка где-то в другом месте, потому что у вас есть just works.

Пожалуйста, проверьте свою консоль ошибок.

Хотя ваш второй пример должен быть:

$('ul').find('#tl_2').remove(); // but this isn't really needed since we are selecting by id. So just go for the first example which is faster. 
+2

Возможно, более одного элемента с одинаковым идентификатором, в этом случае будет удалено только первое. [Обновлена ​​скрипка ] (http://jsfiddle.net/AF7jw/3/) –

+0

@ShadowWizard Хороший вызов. Хорошо, у вас есть один и тот же ID более одного раза в DOM? – PeeHaa

+0

OP не получит уведомление о вашем комментарии здесь, напишите комментарий на его вопрос, чтобы он получил уведомление и, надеюсь, ответит. :) –

10

вероятно Вы имели какие-то глупые ошибки, это должно работать:

$('#buttonId').click(function(){ 
     $('#tl_2').remove(); 
    }); 

Обратите внимание, что нет никакой необходимости «найти» для элемента по идентификатору , id уникален.

$('li').find('tl_1').remove(); // And you were missing the # anyway... 

Удостоверьтесь, что у вас есть только один элемент для каждого id. id как id ... У вас может быть только один с тем же значением.

Каждое значение id должно использоваться только один раз в документе. Если нескольким элементам был присвоен одинаковый идентификатор, запросы, которые используют этот идентификатор, будут выбирать только первый согласованный элемент в DOM. Однако это поведение нельзя полагаться; документ с более чем одним элементом, использующим один и тот же идентификатор, является недопустимым.

+0

Он * был * довольно глупым - я забыл символ '#'. – ashes999

15

Возможно, у вас есть более одного элемента с тем же идентификатором.

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

$("#btnRemove").click(function() { 
    $("#myList li").eq(1).remove(); 
}); 

Это удалит Второй элемент списка каждый щелчок.

Live test case.

1

Я думаю, что вы не показываете нам какую-то часть своего кода, поскольку я подозреваю, что вы пытаетесь генерировать этот идентификатор динамически, то есть и устанавливаете его динамически. Вы должны убедиться, что нет никакого «пространство» характер в ид, который, скорее всего, неразбериха вещь до ...

$('#tl_2').remove(); 

Работы по Jquery документации. это сработало для меня.

Смежные вопросы