执行 js 脚本,无法查询到页面新加载出的元素 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
tobecoder
V2EX    程序员

执行 js 脚本,无法查询到页面新加载出的元素

  •  
  •   tobecoder 2020-11-18 22:30:08 +08:00 1983 次点击
    这是一个创建于 1795 天前的主题,其中的信息可能已经有所发展或是发生改变。

    代码如下:

    var main = function() { select_title(); //执行完此程序之后页面会加载出新的 dom 元素 select_topic(); //该函数需要处理 select_title 函数加载的新元素,但是无法查询到,不知是什么问题 } 

    界面如下:

    a6.jpg

    select_title 选择完马克思理论之后会加载出下面的选项

    select_topic 选择下面的选项时,却找不到对应的元素

    请问大佬们 有什么解决方案,还有无法这样处理的原因是什么

    12 条回复    2020-11-21 00:50:10 +08:00
    muzuiget
        1
    muzuiget  
       2020-11-18 22:44:23 +08:00
    定时检查,要不然在上一个函数里加回调。
    tobecoder
        2
    tobecoder  
    OP
       2020-11-18 22:49:28 +08:00
    @muzuiget 定时检查意思是等待检查吗??我有试过加 setTimeout(),但是 select_topic 还是等待不到需要的元素
    dfourc
        3
    dfourc  
       2020-11-18 23:00:57 +08:00
    定时检查+1,或者 MutationObserver
    dfourc
        4
    dfourc  
       2020-11-18 23:04:43 +08:00
    @tobecoder #2 定时是 setinteval(fn,0),判断有 dom 了就停止
    tobecoder
        5
    tobecoder  
    OP
       2020-11-18 23:08:14 +08:00
    @galikeoy 定时检查的前提是函数执行完之后元素肯定能加载出来,但是目前尝试好像并不能,有什么办法可以确定元素已经加载出来呢?
    dfourc
        6
    dfourc  
       2020-11-18 23:13:27 +08:00
    @tobecoder #5 setinteval(fn,0),或者 MutationObserver
    codespots
        7
    codespots  
       2020-11-18 23:54:54 +08:00
    现在的小朋友已经不知道 DOM 操作了吗?
    GressJoe
        8
    GressJoe  
       2020-11-19 08:55:18 +08:00
    select_title 是异步函数吧。。。
    Exceptionluo
        9
    Exceptionluo  
       2020-11-19 09:03:52 +08:00
    检查下动态添加的 DOM 绑定的事件有没有生效
    NCry
        10
    NCry  
       2020-11-19 09:23:36 +08:00
    为啥不是在第一个方法的回调里面写第二个方法,两个方法一定要同层的话,就只能像楼上说的一样加轮询了。
    jiangnan01
        11
    jiangnan01  
       2020-11-19 09:48:38 +08:00
    DOMNodeInserted 监听了解一下,给 select_title 方法加载新 dom 元素的父级添加这个监听
    tobecoder
        12
    tobecoder  
    OP
       2020-11-21 00:50:10 +08:00
    @galikeoy 谢谢老哥 ,延时久一点就可以了,很赣
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2422 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 15:42 PVG 23:42 LAX 08:42 JFK 11:42
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86