[問題] 用autofill寫js undefined

看板Ajax作者 (吃吃不吃魚)時間6年前 (2018/05/07 01:59), 6年前編輯推噓1(104)
留言5則, 3人參與, 6年前最新討論串1/1
我用autofill和tampermonkey這兩個chrome的插件 在裡面寫javascript 其中code如下 document.getElementsByClassName("plus")[0].click(); 當我用console直接打這行 是有反應的 button有按下去 但當我把這行寫在插件內 卻有error且button無反應 用console.log印出來都是 undefinded (Cannot read property 'click' of undefined) 兩個插件都是一樣的結果 如果改寫成 .item(0).click(); 印出來則是會null 如果只印 document.getElementsByClassName("plus") 是正常的 HTMLCollection[....] 網頁本身是用angular 不知道是否有影響 換什麼方法寫能解決問題 或是套件或網頁本身不支援? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.250.229.81 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1525629544.A.58C.html

05/07 02:54, 6年前 , 1F
plus元素是動態新增的嗎?是的話你綁定事件也要在元素載入
05/07 02:54, 1F

05/07 02:54, 6年前 , 2F
之後再動態新增
05/07 02:54, 2F
不是喔 plus已經存在 單純印 document.getElementsByClassName("plus") 不指定第幾個是可以的 只要指定[0] 就變成undefined ※ 編輯: tk930732 (111.250.229.81), 05/07/2018 03:51:13

05/07 08:51, 6年前 , 3F
檢視一下console裡的HTMLCollection是否有element
05/07 08:51, 3F
有喔,所有的plus都在 ※ 編輯: tk930732 (111.250.229.81), 05/07/2018 12:18:07

05/07 13:52, 6年前 , 4F
用angular的話應該是動態新增的
05/07 13:52, 4F

05/07 13:52, 6年前 , 5F
試試setTimeout再click?
05/07 13:52, 5F
喔喔成功了 原來angular是動態新增 沒玩過真的不太了解 感謝以上各位大大 ※ 編輯: tk930732 (111.250.229.81), 05/07/2018 16:39:51
文章代碼(AID): #1Qxq9eMC (Ajax)
文章代碼(AID): #1Qxq9eMC (Ajax)