CSS/JavaScript: получите пользовательский видимый текст элемента

Предположим, что у меня есть следующий HTML:

<div id="test">
  <span style="display:inline;">foo</span>
  <span style="display:none;">bar</span>
  <span style="display:inline;">baz</span>
</div>

.. есть ли некоторый путь в JavaScript для меня для получения вывода "нечто baz" (не "панель нечто baz")?

$('test').textContent возвращает последнего, и innerHTML делает эквивалент.

Я не забочусь вообще, если используемый метод является hackish или кольцом, и может иметь дело с ним, если это является определенным для браузера или требует Flash.

Однако это ничего не должно требовать кроме JS или Flash, это не должно требовать никакого взаимодействия с пользователем, и это не должно возвращать 'панель'.

Идеи?

5
задан Rob W 28 December 2011 в 22:23
поделиться

1 ответ

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

$("#test :visible").text()

Вот альтернативный вариант, как в вашем примере, с интервалом для каждого диапазона:

var s = new Array();
$("#test :visible").each(function() {
   s.push($(this).text());
});
alert(s.join(' '));
4
ответ дан 15 December 2019 в 00:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: