2015-09-11 2 views
0

Я пытаюсь создать список (охватывает) с использованием текста меток ввода флажков. Он добавляет штраф, но удаление не работает.Если проверено append var else, удалите var

$('#device_type_list li input').change(function(){ 
    var response = $('label[for="' + this.id + '"]').text(); 
    var device = $('<span>' + response + '</span>'); 
    if(this.checked){ 
    $('#device_filter_summary').append(device); 
    } else { 
    $('#device_filter_summary').find(device).remove(); 
    } 
}); 

EDIT: вот скрипка: http://jsfiddle.net/kirkbross/9jr3v5hq/

+0

вы можете просто сделать '$ ('# device_filter_summary') найти ('пядь') удалить();..' – Sushil

+0

Ваш код выглядит нормально. Попробуйте разбить его на мелкие кусочки, которые вы можете увидеть в отладке. var summary = $ ('# device_filter_summary'); var thisDevice = summary.find (устройство); var thisDevice.remove(); по мере того как вы проходите это через отладку, вы можете видеть, что каждый элемент, возможно, это даст вам указание на то, что не так. –

ответ

1

Функция находкой не работает с HTML, как '<span>Android</span>' вы должны использовать .find ("Диапазон: содержит ('Android')").

Смотрите скрипку здесь http://jsfiddle.net/ewkfLdsv/

$('#device_type_list li input').change(function(){ 
    var response = $('label[for="' + this.id + '"]').text(); 
    var device = $('<span>' + response + '</span>'); 
    if(this.checked){ 
    $('#device_filter_summary').append(device); 
    } else { 
    $('#device_filter_summary').find('span:contains("' + response + '")').remove(); 
    } 
}); 
+0

Спасибо ... Я пробовал это, но мой синтаксис отключен. Я просто содержал (ответ), который не работал. –

+0

Ваша скрипка замечательная. Вот еще одно с тем же. http://jsfiddle.net/kirkbross/9jr3v5hq/1/ –

1

Существует причина, почему .remove() не работает, потому что ваши сопоставляют весь период тег от начала до конца диапазона тега, который является неправильным. Вам просто нужно найти «тег» внутри .find(), а затем удалить его. Как ::

$('#device_filter_summary').find('span').remove(); 
+0

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

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