我的phonegap应用中有以下代码:
function onDeviceReady() {
var listOfSports = new Array(["Aikido"],["Air Sports"],["American Football"],["Angling"],["Archery"],["Yoga"]);
$.each(listOfSports, function (i) {
console.log(i);
var li = $('<li><input class="checkbox" type="checkbox"' + 'id="' + listOfSports[i] + '"' + 'label="' + listOfSports[i] + '">' + listOfSports[i] + '</li>')
.appendTo("ul.listViewContainer");
});
$("#listViewContainer").listview();
$("#listViewContainer").listview("refresh");
}
如何获取已检查项目的值并在选中时将值添加到数组中或在未选中时将其删除?
答案 0 :(得分:1)
像这样的东西。这会将所有复选框ID存储在一个数组中。
var arr = [];
function onDeviceReady() {
var listOfSports = new Array(["Aikido"],["Air Sports"],["American Football"],["Angling"],["Archery"],["Yoga"]);
$.each(listOfSports, function (i) {
console.log(i);
var li = $('<li><input class="checkbox" type="checkbox"' + 'id="' + listOfSports[i] + '"' + 'label="' + listOfSports[i] + '">' + listOfSports[i] + '</li>')
.appendTo("ul.listViewContainer");
});
$("#listViewContainer").listview();
$("#listViewContainer").listview("refresh");
$(".checkbox").click(function () {
if ($(this)[0].checked)
{
arr.push($(this).attr("id"));
}
else
{
arr = $.grep(arr, function( a ) {
return a != $(this).attr("id");
});
}
});
}
修改:
只是一个小错误。这里有一个小提琴:http://jsfiddle.net/wyfr8/207/
else
{
var check = $(this);
arr = $.grep(arr, function( a ) {
return a != $(check).attr("id");
});
}