jQuery / NodeJS: получение URL кнопки без уникального имени класса - PullRequest
0 голосов
/ 25 сентября 2019

Поэтому я пытаюсь получить определенную ссылку кнопки на веб-сайте, который я анализирую через NodeJS:

Обычно это будет довольно легко при использовании cheerio:

$('.panel-default').find('.btn-default').attr('href');

Проблема в том, что есть еще 3 кнопки с одинаковым именем класса на 60 элементах:

<a href="https://someurl.com" class="btn btn-xs btn-default" target="_blank"><span class="fa fa-fw fa-steam-square poptip" data-toggle="tooltip" title="" data-original-title="View Details"></span></a>

<a href="/somedir" class="btn btn-xs btn-default"><span class="fa fa-road fa-fw poptip" data-toggle="tooltip" title="" data-original-title="See more like this"></span></a>

<a href="/otherdir" class="btn btn-xs btn-default" target="_blank"><span class="fa fa-link fa-fw poptip" data-toggle="tooltip" title="" data-original-title="View shareable link"></span></a>

Итак, просматривая 4 результата с помощью .each, выбирая правильную иповторяю, что для всех 60 других предметов мне не кажется, что это изящный выбор.

Есть ли другой способ получить нужную информацию, например, вызвав уникальный data-original-title "Inspect in game"например, через cheerio (это вообще возможно?)?Или как еще можно решить это элегантно и гладко?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2019

Используйте селектор data.

$('.panel-default').find(".btn-default[data-original-title='Microsoft']").attr('href');
0 голосов
/ 25 сентября 2019

Если $('.panel-default').find('.btn-default') возвращает более одного значения, вы можете передать индекс, который хотите получить, только для ее атрибута href.

Если вам нужен второй элемент href, например:

$('.panel-default').find('.btn-default')[1].attr('href');

...