Выберите опцию в мобильной версии веб-сайта (адаптивный режим)

#javascript #html #dom #responsive-design #html-select

#javascript #HTML #dom #адаптивный дизайн #html-выберите

Вопрос:

Как я могу выбрать параметр размера из https://www.supremenewyork.com/mobile#products/305278 , когда я просматриваю его в адаптивном режиме? Я пробовал это, document.querySelector("#size-options > option:nth-child(2)").selected = "selected"; но это не работает.

В режиме рабочего стола https://www.supremenewyork.com/shop/pants/n1to4psjk/wlmx7p5hr метод document.querySelector("#size > option:nth-child(3)").selected = "selected"; работает так, как и ожидалось.

Комментарии:

1. Вы пытались проверить идентификатор элемента? Похоже, что идентификатор отличается в мобильном представлении. Попробуйте id size-options вместо size

2. Да, я забыл упомянуть об этом, я использовал разные идентификаторы в мобильной и настольной версии, если вы продолжаете оформлять заказ, есть также такие параметры, как страна, тип карты и т. Д., И они тоже не работают.

3. На самом деле это фактическое изменение — просто не отражается в пользовательском интерфейсе. После выполнения инструкции, которую вы опубликовали, попробуйте выполнить document.querySelector("#size-options > option:nth-child(2)").selected , и она вернется true . Пользовательский интерфейс не обновляется, да. Чего именно вы пытаетесь достичь?

4. Я создаю бота, который автоматически покупает товары, поэтому вы предварительно определяете название товара, цвет, размер, и бот должен добавить товар с этими параметрами в корзину. На странице оформления заказа автоматически заполняются заранее определенные данные заказа, такие как страна доставки и т.д.

5. Тогда это должно работать так, как есть, поскольку изменение размера действительно происходит за кулисами. Если вы хотите убедиться, что событие действительно зарегистрировано, и хотите также обновить пользовательский интерфейс, попробуйте запустить событие после выполнения приведенного выше кода. Если вы используете Jquery, попробуйте $("#size-options").trigger('change') .

Ответ №1:

Вы можете использовать document.querySelector("#order_billing_country").value = "countryCode"; , и он будет работать как на десктопе, так и на мобильном устройстве. Пользовательский интерфейс на мобильных устройствах никогда не обновляется, но когда вы нажимаете обработать платеж, правильное значение отправляется в Supreme.