2015-02-27 3 views
1

Мне нужно удалить элемент li, когда я нажимаю на него. Сначала код работает нормально, а затем, когда я добавляю в свой проект, функция удаления не работает. Я поставил свой код на скрипку и больше ничего не работал. Я ищу все в Интернете и пытаюсь исправить, но ничего не работает, объясните мне, потому что я все еще новичок в jQuery & java script.Удалить элемент li не работает

Вот мой код на скрипку: http://jsfiddle.net/cyrzbvwe/

Мой HTML хотел бы:

<ul class="listcheckbox"> 
<li class="clearfix"> 
    <input type="checkbox" id="chk1" name="timetable" /> 
    <label for="chk1">9-10g <span class="pull-right"></span> 

    </label> 
</li> 
<li class="clearfix"> 
    <input type="checkbox" id="chk2" name="timetable" /> 
    <label for="chk2">10-11g <span class="pull-right"></span> 

    </label> 
</li> 
<li class="clearfix"> 
    <input type="checkbox" id="chk3" name="timetable" /> 
    <label for="chk3">11-12g <span class="pull-right"></span> 

    </label> 
</li> 
<li class="clearfix"> 
    <input type="checkbox" id="chk4" name="timetable" /> 
    <label for="chk4">12-13g <span class="pull-right"></span> 

    </label> 
</li> 
<li class="clearfix"> 
    <input type="checkbox" id="chk5" name="timetable" /> 
    <label for="chk5">13-14g <span class="pull-right"></span> 

    </label> 
</li> 
<li class="clearfix"> 
    <input type="checkbox" id="chk6" name="timetable" /> 
    <label for="chk6" class="item">14-15g <span class="pull-right"></span> 

    </label> 
</li> 

Вот сценарий

$(document).ready(function() { 
$('input[name="timetable"]').change(function() { 
    if ($(this).is(':checked')) { 
     $('#timeselect').append($('<li class="clearfix delete">' + $('label[for="' + this.id + '"]').text() + '<img src="delete.png" class="pull-right" /></a></li>')); 
     $(this).attr('disabled', true); 
    } 
}); 

$('#timeselect').on('click', 'li.delete', function() { 
    var time = $(this).text().trim(); 
    var idTime = '#' + $('label').filter(function() { 
     return this.firstChild.nodeValue.trim() === time; 
    }).attr('for'); 

    $(idTime).prop('checked', false); 
    $(idTime).attr('disabled', false); 

    $(this).remove(); 
}); 
}); 
+1

Ваш код работает http://jsfiddle.net/satpalsingh/ghkonrb9/ – Satpal

+3

Вы выбрали JQuery нету :) –

+2

В скрипке у вас нету выбор JQuery, и я думаю, что в и вы, возможно, не добавили jquery.Check вашего проекта в консоли браузера и выяснить, есть ли у вас какие-либо ошибки. – SpringLearner

ответ

0

Как @JoakimM и @ PpringLearner-х комментарий. Оказывается, я забыл включить jquery в jsFiddle

Но проблема, в которую я пришел, - это когда я добавляю больше флажка с меткой, функция удаления снова не работает. Вот код: http://jsfiddle.net/ptrpzvLv/

отлаживать как сказал @JoakimM, и это получится некоторый элемент метки содержит никакой ценности, так не подрезать() функция получила ошибку и останавливается там ...

Что я сделал это сделать в этой строке более ясно var idTime = '#' + $('label').filter - var idTime = '#' + $('ul.listcheckbox label').filter

p/s: Я действительно предлагаю вам всю вашу помощь.

+0

Нет проблем. Удачи в кодировании! –

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