我的网页上有“ n”个链接。我要收集其href包含xyz.com的所有链接,然后“随机”单击其中之一。

我为此编写了以下脚本:

function clickLinkWithText () {
    var links = $('a[href*="xyz.com"]')
    var randomNum = Math.floor(Math.random()*links.length);
    var targetLink = links.get(randomNumber);
    if (targetLink.length) {
        triggerMouseEvent (targetLink[0], "click");
    }
}
/* code for triggerMouseEvent() */


但是什么也没发生。我究竟做错了什么?

最佳答案

只需使用正确的变量,并删除if语句,因为get的返回值是元素本身,因此不需要进一步的下标:

function clickLinkWithText () {
    var links = $('a[href*="xyz.com"]');
    var randomNum = Math.floor(Math.random()*links.length);
    var targetLink = links.get(randomNum);                      // use the right variable here
    triggerMouseEvent (targetLink, "click");                    // call triggerMouseEvent on the element
}


注意:传递给triggerMouseEvent的元素是DOM元素,而不是jQuery包装的元素。如果triggerMouseEvent期望使用jQuery对象,则按以下方式调用triggerMouseEvent

triggerMouseEvent ($(targetLink), "click");

08-15 18:49