上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主: cxxjackie - 

异步获取元素的脚本库 ElementGetter

  [复制链接]
  • TA的每日心情
    开心
    2024-3-18 08:43
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    9

    主题

    70

    回帖

    79

    积分

    初级工程师

    积分
    79
    发表于 2022-11-15 09:03:46 | 显示全部楼层
    (function() {
        elmGetter.get('div').then(div => {
            console.log(div);
        });
    })();
    照例子,确实能捕捉相关元素。。多个元素就写多这样的代码, 效率上也没太大影响,比之前用定时器循环检测好多了,
    但是也有一个问题,就是页面部分更新,例如一面中,其中某一块可以点击下一页,本来会对这部分数据样式进行处理。但是
    现在页面没有重新加载,只是部分表单更新了。这个时候,就不会表单样式进行修改了。
    回复
    订阅

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    861

    回帖

    1360

    积分

    荣誉开发者

    积分
    1360

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-11-15 12:04:49 | 显示全部楼层
    szzxc 发表于 2022-11-15 09:03
    (function() {
        elmGetter.get('div').then(div => {
            console.log(div);

    这种情况适用each方法,get只获取一次,each是每次,如果变化较复杂,还可以在each中套get,参考“综合示例”的代码。
    还有例子中的function只是为了与async function做区分,不用每次都套一层function的。多个元素还可以传选择器数组同时处理:
    1. elmGetter.get(['.class1', '.class2']).then(([elm1, elm2]) => {
    2.     console.log(elm1, elm2);
    3. });
    复制代码

    可能的话还是更建议async/await的写法,语义上更清晰。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-18 08:43
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    9

    主题

    70

    回帖

    79

    积分

    初级工程师

    积分
    79
    发表于 2022-11-17 18:23:57 | 显示全部楼层
    cxxjackie 发表于 2022-11-15 12:04
    这种情况适用each方法,get只获取一次,each是每次,如果变化较复杂,还可以在each中套get,参考“综合示 ...

    不知道async/await 写法有什么不同 ,目前用each 基本上都是捕捉到
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    861

    回帖

    1360

    积分

    荣誉开发者

    积分
    1360

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-11-17 20:48:13 | 显示全部楼层
    szzxc 发表于 2022-11-17 18:23
    不知道async/await 写法有什么不同 ,目前用each 基本上都是捕捉到

    示例里有,可以看看论坛关于Promise的教程,不过each不是Promise,不了解也没事。
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2023-11-2 17:37
  • 签到天数: 275 天

    [LV.8]以坛为家I

    111

    主题

    447

    回帖

    961

    积分

    荣誉开发者

    积分
    961

    荣誉开发者油中2周年卓越贡献生态建设者

    发表于 2022-11-29 00:35:24 | 显示全部楼层
    shabby 发表于 2022-10-20 14:03
    1."脚本也不能使用npm命令" , 这个需要借助其他工具
    2. "不在其他环境中使用似乎没有打包的必要", 打包 ...

    哥哥好!!!!!!!
    I frequently record, because want to leave something.
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2023-11-24 10:55
  • 签到天数: 61 天

    [LV.6]常住居民II

    14

    主题

    30

    回帖

    111

    积分

    中级工程师

    积分
    111
    发表于 2022-12-15 15:52:18 | 显示全部楼层

    image.png
    更新脚本猫后出现未定义怎么解决

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    861

    回帖

    1360

    积分

    荣誉开发者

    积分
    1360

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-12-15 20:24:54 | 显示全部楼层
    player 发表于 2022-12-15 15:52
    [md]!(data/attachment/forum/202212/15/155138oww8mj54evxkeee5.png)
    更新脚本猫后出现未定义怎么解决[/md ...

    eslint的问题,相关变量来自库内部,这只是一个语法检查而已,不管他也没事,看着别扭的话在代码前加上一句:
    1. /* globals ElementGetter, ajax */
    复制代码
    回复

    使用道具 举报

  • TA的每日心情

    2024-2-16 22:31
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    1

    主题

    15

    回帖

    15

    积分

    助理工程师

    积分
    15
    发表于 2023-4-4 14:40:12 | 显示全部楼层
    不会用咋办,大佬,能出个视频么。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    861

    回帖

    1360

    积分

    荣誉开发者

    积分
    1360

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2023-4-4 20:41:55 | 显示全部楼层
    q3666 发表于 2023-4-4 14:40
    不会用咋办,大佬,能出个视频么。

    这是个调用库,没法用视频演示,具体是哪里不懂呢?
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    3

    回帖

    6

    积分

    助理工程师

    积分
    6
    发表于 2023-4-7 02:42:26 | 显示全部楼层
    var entity = $("#page_tabwindow_1");
    elmGetter.each($("#mainContent"), entity, reply => {
         const btn1 = reply.$("#zero");
        if (btn1)
            alert('找到了);
    大佬您看一下jquery的选择器这么写对吗
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表