【问题标题】:jQuery Click executes only once inside for loop. TampermonkeyjQuery Click 在 for 循环中只执行一次。篡改猴
【发布时间】:2015-06-09 21:01:36
【问题描述】:

尝试将文本区域更改为汽车,然后单击按钮执行某项操作,然后冲洗并为新车重复,直到我们为所有汽车完成此操作。

var index;
var cars = ["car1" , "car2" , "car3"]
var x = document.getElementsByTagName("textarea");
for(index = 0; index < 10; index++) {
    x[0].innerHTML = cars [index];
    jQuery('#someID').click();
}

这只是遍历所有汽车,然后在到达最后一辆车时单击按钮。

如果我取出 x[0] 行并单击它,实际上它确实为数组中的每个项目单击 3 次,但我正在使用的网站会弹出一个窗口说
请每次单击时插入一辆车,然后将其放入 textarea 中。

为什么它在空白时有效,但在我尝试编辑 textarea 时无效?

【问题讨论】:

  • 我不确定您的点击处理程序是否会以这种方式工作;您可能必须使用事件处理程序的 jQuery('body').on('click', '#someID') 形式。我不太明白您所指的弹出窗口发生了什么。
  • 你知道 alert("this pops open") 在屏幕上的显示方式吗?它提醒我需要插入文本。很抱歉没有澄清。我会尝试使用它。编辑:使用 "jQuery('body').on('click', '#someID')" 它根本不会点击按钮。
  • 我明白你在说什么。您可以使用猴子补丁来避免这种情况。 window.alert = function() {};基本上只要 alert 被调用,它就会调用这个空函数。鉴于我讨厌警报,应该在任何地方使用它。
  • 谢谢。但我仍然不明白如何编辑 textarea 并让它单击数组中每个汽车字符串的按钮。
  • 我相信我完全误解了你原来的问题。我道歉。那么,您试图让 jQuery 根据汽车上发生的事件单击按钮吗?有什么理由不直接影响行为吗?也许这就是你最初要问的。你愿意在 jsBin 中加载你想要做的事情吗? jsbin.com/?html,output

标签: javascript jquery for-loop tampermonkey


【解决方案1】:

我认为这样的事情对你有用。

var cars = ["car1" , "car2" , "car3"]
for(var index = 0; index < cars.length; index++) {
  document.getElementsByTagName("textarea")[0].textContent += cars[index];
  document.getElementById("someId").click()
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 1970-01-01
    • 2019-06-20
    • 2017-04-26
    相关资源
    最近更新 更多