<thead>
<tr>
<th width="40">
<input type="checkbox" id="selectAllAndInvert"/>
</th>
<th width="40">序号</th>
<th width="100">题目名称</th>
<th width="80">题目类型</th>
<th width="100">操作</th>
<th width="100">操作</th>
</tr>
</thead>
<tbody>
<?php foreach($rows as $key => $val){ ?>
<tr>
<td width="40">
<input type="checkbox" name="checked_id[]" value="<?php echo $v['id']; ?>" id="selectAllAndInvert"/>
</td >
</tr>
<?php } ?>
</tbody>
<script>
var selectAllInvert = getSessionStorage();
if(selectAllInvert) {
selectAllInvert = JSON.parse(selectAllInvert);
$.each(selectAllInvert, function (key, val) {
$("input:checkbox[value="+val+"]").attr('checked','true');
});
}
$('#selectAllAndInvert').click(function(){
$('input[name="checked_id[]"]').each(function(i,v){
this.checked = !this.checked;
})
})
function getQuestionsId(type = 1){
var questionId = [];
if(type == 1){
$('input[name="checked_id[]"]:checked').each(function(){
questionId.push($(this).val());
})
}else {
$('input[name="checked_id[]"]').each(function(){
if(!this.checked){
questionId.push($(this).val());
}
})
}
return questionId;
}
function getSessionInfoData (obj) {
var selectAllInvert = getSessionStorage();
var questionId = obj ? obj.value : getQuestionsId();
if(selectAllInvert){
selectAllInvert = JSON.parse(selectAllInvert);
setSessionStorage(JSON.stringify(selectAllInvert.concat(questionId)));
}else{
setSessionStorage(JSON.stringify(getQuestionsId()));
}
}
function selectAllAndInvert(obj) {
$('input[name="checked_id[]"]').each(function (){
this.checked = !this.checked;
});
var selectAllInvert = getSessionStorage();
if(selectAllInvert){
selectAllInvert = JSON.parse(selectAllInvert);
var selected = selectAllInvert.concat(getQuestionsId());
var uncheck = getQuestionsId(2);
for (var i = 0; i < uncheck.length; i++) {
var index = selected.indexOf(uncheck[i]);
if(index >= 0){
selected.splice(index,1);
}
}
setSessionStorage(JSON.stringify(selected));
}else{
setSessionStorage(JSON.stringify(getQuestionsId()));
}
}
function singleCheckboxSelection(obj) {
if(obj.checked){
getSessionInfoData(obj);
}else{
let selectAllInvert = getSessionStorage();
if(selectAllInvert){
selectAllInvert = JSON.parse(selectAllInvert);
let index = selectAllInvert.indexOf(obj.value);
if(index >= 0){
selectAllInvert.splice(index,1);
setSessionStorage(JSON.stringify(selectAllInvert));
}
}
}
}
let sessionStorageKey = 'questionBatchSelection';
function getSessionStorage() {
return sessionStorage.getItem(sessionStorageKey);
}
function setSessionStorage(value){
sessionStorage.setItem(sessionStorageKey,value);
}
function removeSessionStorage(){
sessionStorage.removeItem(sessionStorageKey);
}
</script>