您的位置:首页 > Web前端 > JQuery

分答项目_技能点_jquery获取待删除页面中已选择分类即checkbox为true的分类

2017-12-12 15:59 417 查看
两种方案的区别:

(1)A方案采用原始js方式

(2)B方案采用jquery方式,此方案中的_that=(this)[0],是获取html元素的dom对象重点注意:(this)这样的写法,它表示的是jquery对象!!!

$(this)[0]是被包装的dom对象

发现问题:each方法中的匿名函数中的console.log(this)方法输出当前元素,开始没有输出内容;等到下面的console.log(ids);正确输出上面each循环后的ids集合中的值后;由于confirm导致中断,等单击确定后,console.log(this)才连续输出内容。

分析:jquery的each方法输出内容存放在缓存中当循环结束一次输出!(目前的理解)

A方案

require(['util'],function(util){
$('.mutdelete').click(function(){
var url = $(this).data('href');
var ids = [];
var idss = [];
$('input:checkbox[name="ids[]"]').each(function() {
console.log(this);
if(this.checked){
ids = ids.concat(this.value);
}else{
idss = idss.concat(this.value);
}
});
console.log(ids);
if(confirm("您确定要删除么?")){
$.post(url,{ids:ids},function(data){
util.message("删除成功","{php echo $_W['siteurl']}",'success');
},'json');
}
});


B方案

require(['util'],function(util){
$('.mutdelete').click(function(){
var url = $(this).data('href');
var ids = [];
var idss = [];
$('input:checkbox[name="ids[]"]').each(function() {
var _that = $(this)[0];
if(_that.checked){
ids = ids.concat($(this).val());
}else{
idss = idss.concat($(this).val());
}
});
console.log(ids);
if(confirm("您确定要删除么?")){
$.post(url,{ids:ids},function(data){
util.message("删除成功","{php echo $_W['siteurl']}",'success');
},'json');
}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: