document.querySelectorAll()。click()仅适用于第一次

时间:2017-08-09 10:50:03

标签: javascript r shiny selectors-api

你能告诉我为什么第一次使用以下代码:

var hangoutButton = document.querySelectorAll("a[href='#shiny-tab-plot']");
hangoutButton[0].click();

但是当我第二次执行它时会返回错误:

VM174:1 Uncaught TypeError: Cannot read property 'click' of undefined

以下是来自firefox控制台的日志:

var hangoutButton = document.querySelectorAll("a[href='#shiny-tab-plot']");
undefined
hangoutButton[0].click();
undefined
shiny-server-client.min.js:1 Wed Aug 09 2017 12:42:16 GMT+0200 (CEST) [DBG]: 1 message(s) discarded from buffer
var hangoutButton = document.querySelectorAll("a[href='#shiny-tab-plot']");
undefined
hangoutButton[0].click();
VM174:1 Uncaught TypeError: Cannot read property 'click' of undefined
    at <anonymous>:1:17
(anonymous) @ VM174:1

1 个答案:

答案 0 :(得分:0)

如果发现了什么,你应该检查一下!如果不是,则返回undefined。当然,您无法在click()上致电undefined

var hangoutButton = document.querySelectorAll("a[href='#shiny-tab-plot']");
if(hangoutButton && hangoutButton.length)
{
   hangoutButton[0].click();
}

否则,如果您只想要第一个元素,可以通过

缩短它
var hangoutButton = document.querySelector("a[href='#shiny-tab-plot']");
if(hangoutButton)
{
   hangoutButton.click();
}