【发布时间】:2016-02-04 16:34:16
【问题描述】:
我想通过选中和取消选中复选框来操作数组。我有一个数组列表,我想在取消选中复选框时从数组中删除该项目。默认情况下必须显示列表并且必须选中复选框。
<div id="x">
<input type="checkbox" class="chkbox" value="Home"> Home
<input type="checkbox" class="chkbox" value="Mayor Conner"> Mayor Conner
</div>
</br></br></br>
<div class="mainPanel">
<div id="cssmenu">
</div>
</div>
var mainPanel = [{
title: "Home",
id: "lnk_home"
}, {
title: "Mayor's Conner",
id: ""
}];
$(document).ready(function createlist() {
console.log('createlist called');
var items = '';
var ulStr = "<ul>";
for (var i = 0; i < mainPanel.length; i++) {
items += '<li><a href="" id="' + mainPanel[i].id + '">' + mainPanel[i].title + '</a></li>';
}
ulStr += items;
ulStr += '</ul>';
$("#cssmenu").append(ulStr);
});
$(document).ready(function() {
var $mlist = $("#menuPanel");
$(".chkbox").onchange(function() {
var list = this.value;
if (this.checked) {
$list.append('<li>' + mlist + '</li>');
} else {
$("#menuPanel li:contains('" + mlist + "')").slideUp(function() {
$(this).remove();
})
}
})
});
这里是fiddle
【问题讨论】:
-
因此,当用户选中 Home 复选框时,您希望删除 Home 链接。是吗?
-
是的,我想在取消选中 Home 链接时删除它,当所有
- 项目都显示时,我将如何默认显示复选框。
-
请检查浏览器开发工具控制台中的错误!首先会看到
$().onchange不是一个函数......当你修复它会看到$list是未定义的。您的控制台应该是故障排除的第一线 -
1) 为什么有两个
$(document).ready()处理程序? 2)Uncaught TypeError: $(...).onchange is not a function(你是说$(...).change()吗?)3)$list is not defined(你是说list吗?)4)mlist is not defined(你是说$mlist吗?)5)list.append is not a function...
标签: jquery arrays json checkbox