我需要在单击 li 元素时删除它。起初代码工作正常,然后当我放入我的元素时,删除功能不起作用。我把我的代码放在 fiddle 上,没有任何工作了。我搜索了所有网络并尝试修复但没有任何效果,请向我解释,因为我对 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 和@PpringLearner 的评论。原来我忘了在 jsFiddle 中包含 jquery
但我遇到的问题是,当我添加更多带标签的复选框时,删除功能不再起作用。这里的代码:http://jsfiddle.net/ptrpzvLv/
我像@JoakimM 说的那样调试,结果发现一些标签元素不包含任何值,所以 trim() 函数出错并停在那里......
我所做的是在 var idTime = '#' + $('label').filter
到 var idTime = '#' + $ 这行让它更清晰('ul.listcheckbox 标签').filter
p/s:非常感谢您的帮助。
关于javascript - 删除一个 li 元素不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28758806/