You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在浏览器控制台连续执行多段jQuery命令批量删除Last.fm自动编辑条目

批量删除Last.fm自动编辑条目的脚本方案

你的思路完全正确,用async/await配合自定义的delay函数是处理这类分步操作+延迟的最优方式,你写的代码本身也没有问题。

为什么这个写法可行?

  • jQuery自带的delay()方法只对它的动画队列生效,没法控制DOM点击这类同步操作的执行时机,所以自己封装基于Promise的delay函数是正确的选择。
  • async/await能把异步代码写成同步顺序的逻辑,刚好匹配你需要的「展开条目→点击删除→关闭弹窗」三步依次执行的流程。

针对800条的优化建议

如果手动重复执行init()太麻烦,可以给脚本加个循环,让它自动批量处理多轮,同时根据页面实际响应速度微调延迟时间:

function delay(milliseconds){
    return new Promise(resolve => setTimeout(resolve, milliseconds));
}

async function deleteOneBatch() {
    // 展开当前页面所有可编辑条目
    jQuery('.disclose-trigger').each((_, el) => el.click());
    await delay(1500); // 可根据页面加载快慢调整

    // 删除所有已展开的条目
    jQuery('.btn-delete').each((_, el) => el.click());
    await delay(1500);

    // 关闭所有删除确认弹窗
    jQuery('.js-close').each((_, el) => el.click());
    await delay(1000);
}

// 自动执行指定轮数,比如先跑10轮试试
async function autoRun(totalBatches = 10) {
    for(let i = 0; i < totalBatches; i++) {
        console.log(`正在执行第${i+1}轮删除`);
        await deleteOneBatch();
        // 如果页面需要滚动加载更多条目,加下面两行
        window.scrollTo(0, document.body.scrollHeight);
        await delay(500);
    }
    console.log("批量删除任务完成");
}

autoRun(10); // 修改这里的数字调整执行轮数

注意事项

  • 执行时别把页面切到后台,部分浏览器会限制后台标签的定时器精度,导致延迟失效。
  • 延迟时间别设太短,给页面留够渲染和接口响应的时间,不然可能出现操作没生效的情况。

内容的提问来源于stack exchange,提问作者Eric

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 14:30:17