#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>