1

我有一个页面有几个(100+)这样的条目:

<a href="javascript:removeFromCart(12302, 2);" class="remove">Remove</a>

现在我正在寻找一个可以在控制台中运行并帮助我“单击”所有这些“链接”并使用相应参数执行 javascript 函数 removeCart() 的 jQuery 片段。

这不起作用:

$("a[href^='javascript']:contains('Remove')").click()

有任何想法吗?

4

6 回答 6

7

不能.click()在这里使用,因为锚点没有事件绑定。您需要手动执行href属性的内容,这可以很容易地使用eval()

$('.remove').each(function() {
    eval(this.href);
});
于 2013-07-11T12:50:40.900 回答
2

您可以添加一个新字段并在那里传递参数,例如<a href="#" data-a="12302" data-b="2" class="remove">Remove</a>

$("a.remove").each(function(){
    var param1 = $(this).data('a');
    var param2 = $(this).data('b');
    removeFromCart(param1, param2);
});
于 2013-07-11T12:52:49.367 回答
1

.trigger("click")实际上并不执行用户点击,而是任何绑定到“点击”事件的代码。您需要设置窗口位置:

$("a[href^='javascript']:contains('Remove')").each(function() {
  window.location.href = $(this).prop("href");
});
于 2013-07-11T12:48:46.673 回答
0
 $('.remove').trigger('click',function(){
       // place your code
 });
于 2013-07-11T12:51:58.187 回答
0

您可以先将javascript函数中的参数移动到数据属性中

<a href="#" data-param1="20433" data-param1="2" class="remove">Remove</a>

然后在类选择器上工作。

$("a.remove").each(function() {
  var param1 = $(this).attr('data-param1');
  var param2 = $(this).attr('data-param2');
  removeFromCart(param1, param2);
});
于 2013-07-11T12:52:48.183 回答
0

好吧,触发代码的唯一方法就是实际执行它。

$("a[href^='javascript:removeFromCart']").each(function() {
    eval($(this).attr('href').substr(11));
});
于 2013-07-11T12:54:02.243 回答