我尝试制作一个选择鞋码的扩展程序,并在页面加载时点击添加到购物车按钮。我已完成后者,但选择鞋码不起作用(我已尝试选择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")
}
);
答案 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