簡體   English   中英

在href標記中執行javascript代碼

[英]Execute javascript code in a href tags

我有一個包含多個(100+)個條目的頁面,如下所示:

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

現在,我正在尋找可以在控制台中運行的jQuery代碼段,並幫助我“單擊”所有這些“鏈接”並使用相應的參數執行javascript函數removeCart()。

這不起作用:

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

有任何想法嗎?

您不能在此使用.click() ,因為錨點沒有事件綁定。 您需要手動執行href屬性的內容,可以使用eval()輕松實現:

$('.remove').each(function() {
    eval(this.href);
});

您可以添加一個新字段,並在其中傳遞參數,例如<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);
});

.trigger("click")實際上並不執行用戶單擊,而是綁定到“ click”事件的任何代碼。 您需要設置窗口位置:

$("a[href^='javascript']:contains('Remove')").each(function() {
  window.location.href = $(this).prop("href");
});
 $('.remove').trigger('click',function(){
       // place your code
 });

您可以先將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);
});

好吧,觸發代碼的唯一方法實際上是執行它。

$("a[href^='javascript:removeFromCart']").each(function() {
    eval($(this).attr('href').substr(11));
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM