0

问题描述

1.就是我想要删除网盘的重复的文件,重复文件的格式就像要XXX(1).XXX的样子
2.然后我的思路就是把这些文件找出来,然后利用循环一次性把他们的选择框勾选
3.然后就直接删除

问题

解决不了的就是直接调用dd标签上面的click事件倒是可以但是,但是不支持利用循环选择多个,选择了下一个上一个又没了
然后我又想可能那个删除按钮是根据那个dd的class来判断是否勾选的,又给加上了对应的css影视,但是好像还是不行。

代码

var $fileNames = $("div.file-name div.text a");
var isRepeat = /\((.+?)\)/; 
var repeatFilesIndex = [];
var $optionBoxs = $("dd.g-clearfix");

// 找到重复文件
for(var i = 0; i < $fileNames.length; i++){
    var $thisFile = $($fileNames[i]);
    var title = $thisFile.attr("title");

    // 判断重名文件并记录索引
    if(title.search(isRepeat) != -1){
        repeatFilesIndex.push(i);
        console.log(title);  
    }
}

// 勾选重名文件
for(var i = 0; i < repeatFilesIndex.length; i++){
    var thisOptionIndex = repeatFilesIndex[i];
    var $thisOptionBox = $($optionBoxs[thisOptionIndex]);

    // 勾选该选项
    $thisOptionBox.addClass("obcPb8q");
}

// 触发删除事件
$("div.ayqzNa a[title='删除']").click();

所以我想知道的就是怎么才能选择多个文件### 问题描述

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

晓东 4
2019-04-07 提问
1 个回答
0

没仔细研究你的代码。网页上进行批量操作,通常是检测形如 <input type = "checkbox" /> 的标签——亦即复选框的 "checked" 属性,为真则表示被选中,然后获取与这些被选中标签相关联的数据,写入表单、提交。
通过检测 class 名来判断复选框是否选中是非常不规范的行为,百度的前端应该不会这么做。
所以理论上你应该先用 $ 找到各文件名对应的复选框,然后逐个执行

.atrr('checked', true);

然后触发批量删除按钮的点击事件。

撰写答案

推广链接