как мне проверить текстовое содержимое внутри кнопки. оператор if не распознает текст

#javascript #html #css #web #dom

Вопрос:

Результат поиска в Linkedin, поэтому на странице поиска я хочу выбрать только кнопки с подключением на них. оператор if, похоже, не проверяет, является ли connect текстовым содержимым.

 var buttons = document.getElementsByClassName('artdeco-button artdeco-button--2 artdeco-button--secondary ember-view')
for (var i = 0; i < buttons.length; i  ) {
  console.log(buttons[i].textContent)
  if (buttons[i].textContent == 'Connect') {
    console.log(i)
  }

} 
 <button aria-label="Invite x to connect" id="ember82" class="artdeco-button artdeco-button--2 artdeco-button--secondary ember-view"><!---->
    <span class="artdeco-button__text">
        Connect
    </span></button> 

Результат
Разве у соединения не должно быть соответствующего i?

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

1. Пожалуйста, покажите соответствующий HTML, так как мы не можем догадаться, есть ли там еще что-то (может быть, пробел?).

2. вам не нужно показывать Html-код, когда вы выполняете очистку веб-страниц.

Ответ №1:

Вы выполняете точное совпадение со строкой "Connect" , которое завершается неудачей, потому textContent что в вашем примере также содержится множество пробелов.

Вы можете использовать String.prototype.trim() его для удаления перед тестированием.

 var buttons = document.getElementsByClassName('artdeco-button artdeco-button--2 artdeco-button--secondary ember-view')
for (var i = 0; i < buttons.length; i  ) {
  console.log(buttons[i].textContent)
  if (buttons[i].textContent.trim() == 'Connect') {
    console.log(i)
  }

} 
 <button aria-label="Invite x to connect" id="ember82" class="artdeco-button artdeco-button--2 artdeco-button--secondary ember-view"><!---->
    <span class="artdeco-button__text">
        Connect
    </span></button>