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 に答える