【问题标题】:If there is a specific element on the page, click on another element via Javascript userscript?如果页面上有特定元素,请通过 Javascript 用户脚本单击另一个元素?
【发布时间】:2019-05-17 12:54:26
【问题描述】:

我正在尝试找出一种方法来自动单击具有特定类的网页上的按钮,但前提是页面上存在具有不同特定类的另一个元素。

我想象的方式是:1)我加载页面 2)脚本检查特定元素(通过类)3)如果元素/类存在,则单击其他指定元素。

在执行此操作时,我想我会使用 HTML DOM querySelector() 方法,方法是使用来自给定元素的 HTML 页面中的类。

所以如果页面上存在以下类:

<span class="dashboardIcon dashboardIconFeatured">

我想点击这个类的元素:

<a class="surveyClicked markClicked">

这是我目前的代码:

document.querySelector(".dashboardIcon.dashboardIconFeatured");
document.querySelectorAll(".surveyClick.markClicked")[0].click();

这两行代码在控制台中各自独立工作。我遇到的麻烦是将它们放在一起并确保仅在满足第一个条件时才运行第二行代码-dashboardIcon dashboardIconFeatured 类存在。这似乎是一个可能很容易解决的问题,但是我缺乏 JavaScript 经验和对语法的熟悉让我很受打击。

我们将不胜感激任何和所有的帮助!干杯。

【问题讨论】:

    标签: javascript html jquery-selectors tampermonkey userscripts


    【解决方案1】:

    这样试试

    var isMobileVersion = document.getElementsByClassName('dashboardIcon dashboardIconFeatured');
    if (isMobileVersion.length > 0) {
          console.log("element exists");
          document.getElementsByClassName("surveyClicked markClicked")[0].click();
    
    }
    
    function func(){
      console.log("clicked");
    }
    <span class="dashboardIcon dashboardIconFeatured">
    
    <a class="surveyClicked markClicked" onclick="func()">

    【讨论】:

    • 成功了!我不得不使用 document.querySelectorAll(".surveyClick.markClicked")[0].click();而不是第 4 行的“getElementsByClassName”,但一切正常。非常感谢您的帮助
    猜你喜欢
    • 2020-06-16
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 2015-11-22
    相关资源
    最近更新 更多