删除不起作用的li元素

Remove a li element not working

本文关键字:元素 li 不起作用 删除      更新时间:2024-06-08

当我点击li元素时,我需要删除它。起初代码运行良好,然后当我放入项目时,remove函数不起作用。我把我的代码放在小提琴上,什么都不管用了。我搜索了所有的网站并试图修复,但什么都不起作用,请向我解释,因为我对jquery&java脚本。

这是我在fiddle上的代码: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();
});
});

喜欢@JoakimM和@PplingLearner的评论。结果我忘了在jsFiddle 中包含jquery

但我遇到的问题是,当我添加更多带有标签的复选框时,删除功能无法再次工作。这里是代码:http://jsfiddle.net/ptrpzvLv/

我像@JoakimM所说的那样调试,结果发现一些标签元素不包含Value,所以trim()函数出错并停止了。。。

我所做的是让它在var idTime = '#' + $('label').filtervar idTime = '#' + $('ul.listcheckbox label').filter 这条线上更加清晰

我真的很感激你的帮助。