jQuery - 选择一个项目不起作用

时间:2017-11-19 20:30:32

标签: javascript jquery google-chrome-extension

我尝试制作一个选择鞋码的扩展程序,并在页面加载时点击添加到购物车按钮。我已完成后者,但选择鞋码不起作用(我已尝试选择li元素)。我假设它比那更复杂,但我还没弄清楚。 website

这是我的代码:

function addToCart() {
  $( "#buyingtools-add-to-cart-button" ).click();
}

function addSize() {
  if ($("select[name='skuAndSize']").length) {
    $("option[name='skuId']").click()
    alert($("option[name='skuId']").val())
  }
}

$(document).ready(function() {
  addSize();
  addToCart();
  // alert("HELLO")
}
);

编辑:

function addSize() {
  if ($("select[name='skuAndSize']").length) {
    $('div[class*=exp-pdp-size-dropdown-container] > ul > li:nth-child(3)').mouseup();
    alert($('div[class*=exp-pdp-size-dropdown-container] > ul > li').html());
  }
}

$(document).ready(function() {
  addSize();
  // addToCart();
  // alert("HELLO")
}
);

1 个答案:

答案 0 :(得分:0)

修改(归功于Troy Wray),因为您正在编写Chrome扩展程序,您需要使用vanilla JS触发mouseup事件,如下所示:

var mouseUpEvent = document.createEvent("MouseEvents");
mouseUpEvent.initEvent("mouseup", true, true);
​
var el = $("li.nsg-form--drop-down--option:nth-child(4)")[0];
el.dispatchEvent(mouseUpEvent);

======================

以下答案不适用于Chrome扩展程序:

摆弄它,看起来下拉列表正在收听mouseup事件而不是click上的li事件,所以你会想做这样的事情:

$(selectedLi).mouseup();

例如,像这样:

$("li.nsg-form--drop-down--option:nth-child(4)").mouseup(); // selects 8.5