Как я могу нажать кнопку на основе текста вместо класса - PullRequest
0 голосов
/ 11 сентября 2018

Я не могу отредактировать этот код для работы с кнопками, основанными на тексте, а не на классе, или сделать его для имени класса и текста.

Например:

    <button class="same">plz-click-me</button>
    <button class="same">dont-click-me</button>

СейчасЯ хочу, чтобы код нажимал кнопку "click-me"

Это то, что я использовал в своем коде, чтобы щелкнуть по классу

 var inputs = document.querySelectorAll('.same:not(.hidden_elem)');

Спасибо и надеюсь, что ответы помогут мне

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

    var buttons = document.querySelectorAll("button");
    var clickButton = Array.from(buttons).filter( button => button.textContent === "click-me")[0];
<button class="same">click-me</button>
<button class="same">dont-click-me</button>
0 голосов
/ 11 сентября 2018

Вам придется перебирать возможные подходящие элементы и выбирать те, чей textContent соответствует тому, что вы хотите.Вы не можете использовать jQuery .contains, потому что подстрока click-me включена в don't-click-me:

const matching = Array.prototype.filter.call(
  document.querySelectorAll('.same'),
  ({ textContent }) => textContent === 'click-me'
);
console.log(matching);
<button class="same">click-me</button>
<button class="same">dont-click-me</button>

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

$('.same:contains("click-this-here")').click(() => console.log('clicked'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="same">click-this-here</button>
<button class="same">dont-click-me</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...