Как проверить, содержит ли выбранный элемент элемент с определенным классом - PullRequest
3 голосов
/ 06 марта 2020

Я пишу скрипт Tampermonkey, который должен выполнять некоторый код, если нажата определенная кнопка.

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

Это кнопка:

<a class="btn aao_btn" id="aao_n">
  <span id="available_aao_n" class="label label-danger"><span class="glyphicon glyphicon-remove"></span>
</a>

Это то, что я получил до сих пор. Всегда возвращает false

$("a.aao_btn").on("click", function (e) {
  if (e.shiftKey) {
    // Execute if Shift is pressed while clicking (working)
  }
  else {
    if ( $(this).find("span").hasClass("label_danger") ) {
        // Execute if clicked button contains a danger icon
      }
    else {
       // No danger. Currently this is always the outcome.
    }
  }
  return false;
});

Ответы [ 2 ]

3 голосов
/ 06 марта 2020
if ( $(this).find("span.label-danger").length ) {
1 голос
/ 06 марта 2020

Помимо опечатки, это не будет проверять статус до элемента был нажат. Вот что я закончил:

var danger_check = false;

$("a.aao_btn").mouseover (function() {
    if ( $(this).find("span.label-danger").length ) {
        danger_check = true;
    }
    else {
        danger_check = false;
    }
});


$("a.aao_btn").on("click", function (e) {
  if (e.shiftKey) {
  }
  else {
    if ( danger_check ) {
        // Do this
      }
    else {
       // Do that

    }
  }
  return false;
});
...