Как я могу нажать кнопку с пользовательским идентификатором, который не распознается в Javascript? Если нет имени, тега или идентификатора, можно ли это сделать?

Есть веб-сайт, который я пытаюсь автоматизировать с помощью JavaScript, чтобы применить код скидки. Мне нужно знать альтернативный метод, чтобы заставить эту конкретную кнопку submit () или щелкнуть () по ней. Я уже нашел способ ввести код, потому что для этого элемента есть идентификатор. Однако это не относится к этой кнопке. Когда я использовал идентификатор data-trekkie-id, «apply_discount_button», он не распознавал идентификатор.

    <button name = "button" type = "submit" class = "field__input-btn btn btn--disabled" data-trekkie-id = "apply_discount_button" aria-busy = "false">
          <span class = "btn__content visually-hidden-on-mobile" aria-hidden = "true">
            Apply
          </span>
          <span class = "visually-hidden">
            Apply Discount Code
          </span>
          <svg class = "icon-svg icon-svg--size-16 btn__icon shown-on-mobile" aria-hidden = "true" focusable = "false"> <use xlink:href = "#arrow" /> </svg>
          <svg class = "icon-svg icon-svg--size-18 btn__spinner icon-svg--spinner-button" aria-hidden = "true" focusable = "false"> <use xlink:href = "#spinner-button" /> </svg>

Если вы можете, отредактируйте ваш фактический код как текст в своем вопросе - изображения кода в одиночестве - это утомительно и сложно для работы и отладки. Это заставляет тех, кто иначе хотел бы помочь вам, сначала сделать расшифруйте ваше изображение, что является пустой тратой времени.

CertainPerformance 27.10.2018 00:30
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
540
2

Ответы 2

Я не понимаю на 100% то, что вы ищете. Но я думаю, вы хотите выбрать кнопку с настраиваемым атрибутом данных html5 (data-trekkie-id).

Вы можете выбрать кнопку в javascript, используя следующую строку:

const discountButton = document.querySelector('[data-trekkie-id = "apply_discount_button"]');

Он вернет первое совпадение с атрибутом data-trekkie-id = "apply_discount_button".

Затем вы можете прослушивать события этого элемента, подключив метод addEventListener.

Например, если вы хотите прослушивать событие щелчка на этом элементе, код будет следующим:

 discountButton.addEventListener('click', function(){
     alert('Discount button was clicked.'); // Replace this line with your code
 });

Огромное спасибо за этот ответ, но я ищу другое решение. Я хочу иметь возможность автоматизировать ввод числа в текстовое поле (что я сделал), а затем возможность отправить этот код. Для этого мне нужно было удерживать кнопку (с которой вы мне помогли), но я хочу автоматизировать задачу нажатия кнопки с помощью кода, а не прислушиваться к щелчку.

helplessKid 27.10.2018 04:48

Благодаря гибкости HTMl вы можете создавать свои собственные атрибуты и использовать их по своему усмотрению; если вы когда-либо использовали бутстрап, вы увидите, что они добавляют некоторые атрибуты в теги html Вы можете сделать то же самое. Чтобы зафиксировать событие клика на кнопке с атрибутами data-trekkie-id, вы можете сделать что-то вроде JQuery:

$("[data-trekkie-id=apply_discount_button]").click(function(){
  //some stuff
})

или просто:

$("[data-trekkie-id]").click(function(){
    //some stuff
})

Надеюсь, мой ответ поможет!

Другие вопросы по теме