我点击它时需要删除一个li元素。首先代码工作正常,然后当我放入我的项目时,删除功能不起作用。我把我的代码放在小提琴上,不再有用了。我搜索所有的网络并尝试修复但没有任何作用,请向我解释因为我仍然是jquery& java脚本。
以下是关于小提琴的代码: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();
});
});
答案 0 :(得分:0)
喜欢@JoakimM和@ PpringLearner的评论。结果我忘了在jsFiddle中包含jquery
但我遇到的问题是当我添加更多带有标签的复选框时,删除功能再次无效。这里的代码为:http://jsfiddle.net/ptrpzvLv/
我像@JoakimM那样进行调试,结果发现一些标签元素没有包含值,所以trim()函数出错并停在那里......
我所做的就是让这一行更清晰var idTime = '#' + $('label').filter
到var idTime = '#' + $('ul.listcheckbox label').filter
p / s:我非常感谢你的所有帮助。