【问题标题】:I can't click on the link that has `<a>` tag and no href attribute我无法点击带有`<a>`标签且没有href属性的链接
【发布时间】:2018-07-17 10:57:57
【问题描述】:

我正在制作一个机器人,它可以定位一个页面并自动找到一个“href”,就像&lt;a class="batteekh"&gt;&lt;/a&gt; 我想要的只是以任何方式点击这个超链接。

选择我的超链接$(".batteekh").attr("style","background-color:red") 后,我将背景颜色更改为红色,它可以工作,但发生的情况是我无法点击没有href 属性的链接。

我已经搜索了很多并尝试了几个语句,但没有一个有效:

  • $(".batteekh").trigger("click");
  • $(".batteekh").click()
  • $(".batteekh").get(0).click()

提前致谢!

我正在尝试自动对 stackoverlow 中的问题进行投票

编辑:

// ==UserScript==
// @name         Stackoverflow Voter
// @namespace    http://tampermonkey.net/
// @version      0.1
// @require      http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
// @description  try to take over the world!
// @author       You
// @match        https://stackoverflow.com/questions/*
// @grant        none
// ==/UserScript==

$(".vote-up-off").attr("style","background-color:red")[0].click();

注意:我仅将其用于学习目的

【问题讨论】:

  • $(".batteekh")[0].click() 应该可以工作 - 假设它是 DOM 中具有该类的第一个元素
  • @MagnusIngwersen "我无法点击那个没有 href 属性的链接。"
  • jQuery 使用 .click() 来分配 onclick 函数,例如:.click(function(){})
  • 我明白了。我会拉出我的cmets以避免其他人感到困惑!感谢指正
  • @YoussofHammoud 你确定$(".batteekh")[0].click() 不起作用吗?当然,它不适用于您自己的问题,因为您不能为自己的问题投票。

标签: javascript jquery jquery-selectors userscripts


【解决方案1】:

我认为$(".batteekh")[0].click() 应该在您的情况下处理一次点击。

【讨论】:

    【解决方案2】:

    好的,通常,href 标记定义了浏览器在单击后应将您带到的位置,因此如果没有,则不会发生任何事情。但是,大多数人会将&lt;a&gt;...&lt;/a&gt; 与单击事件一起使用,这看起来就像您正在尝试的那样。如果您触发 $(".batteekh").click() 并且没有任何反应,这只是意味着您的按钮没有附加点击事件,或者您的按钮附加了点击事件,没有任何反应。

    那么,首先要了解您是否首先将点击事件附加到您的按钮?例如下面是我如何为您的按钮定义点击事件:

    $(".batteekh")
    .unbind("click")
    .bind("click", function ()
    {
       alert('Got here first!!');
    });
    

    例如,在您的萤火虫 (Firefox) 中,您可以输入 $(".batteekh") 并按 Enter,如果您调查该对象,您将能够看到该按钮附加了哪些事件...

    【讨论】:

    • 感谢您的解释,但是当我将您的代码附加到我的代码时它不起作用。您能解释一下为什么我不能使用 JQuery 代码单击 &lt;a&gt;&lt;/a&gt; 标记。或者它有效但我失败了这样做。
    • 你能进一步解释你的答案吗?
    【解决方案3】:

    这是一个工作示例: JsFiddle

    <a class="batteekh" style="cursor: pointer;">Link 1</a>
    

    脚本

    <script>
        $('.batteekh').click(function(){
        alert("You clicked me?");
    });
    

    如果您有多个链接:

    $('.batteekh').click(function(){
      $(this).click(function(){
        alert("You clicked me?");
      });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      • 2019-05-15
      • 2014-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多