1

基本上,我正在尝试编写一个命令行客户端脚本(javascript)来自动在线购买东西。

问题是,在这个特定的网页上,我试图点击的按钮(添加到购物车)在页面中出现了多次(针对不同的产品)。

我知道:

document.getElementById('addToCart').submit();

将点击addToCart,但由于有几个具有相同名称的按钮,我如何找到并点击某个产品的特定按钮?

我们可以假设我们事先知道产品名称,并且每个 addToCart 按钮都有一个唯一的 id(我不知道)。

4

3 回答 3

1

您自己回答了,如果您已经知道产品名称,那么您肯定已经知道它的按钮ID吗?

document.getElementById('button234').click()
于 2013-07-24T15:55:12.990 回答
1

每个人都是正确的,你应该只有一个 ID,但这里有更多关于如何做到这一点的叙述。

所以你是说你有一些动态生成的 HTML 对吗?你会得到一个产品列表,你可以得到一个如下所示的按钮列表。

<input id="productId_233442" class="addToCart" type="button" value="addToCart"></input><br/>
<input id="productId_25AD22" class="addToCart" type="button" value="addToCart"></input><br/>
<input id="productId_1J3422" class="addToCart" type="button" value="addToCart"></input><br/>

出于样式目的,您可以为它们提供与上面示例中相同的 addToCart 类。

至于java脚本,你可以有这样的东西。

$(document).ready(function(){
  $(document).click(function(event){
        alert(event.target.id);
    });
});

我正在使用我建议的 JQuery,但是如果您愿意,您可以在纯 JS 中执行此操作,但我无法想象您为什么会这样做。

看下面的小提琴。http://jsfiddle.net/r0k3t/dRam5/

于 2013-07-24T16:09:06.520 回答
0

页面上的特定 ID 不应超过一个元素。如果您需要多个元素,请使用class属性。

正如 SmokeyPHP 所写,您可以使用.click().submit()触发点击事件。

于 2013-07-24T15:58:27.420 回答