Предположим, что у меня есть следующий 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, это не должно требовать никакого взаимодействия с пользователем, и это не должно возвращать 'панель'.
Идеи?
Вы можете сделать это, но обратите внимание, что в нем не будет пробела, как в вашем примере, потому что в разметке нет пробела:
$("#test :visible").text()
Вот альтернативный вариант, как в вашем примере, с интервалом для каждого диапазона:
var s = new Array();
$("#test :visible").each(function() {
s.push($(this).text());
});
alert(s.join(' '));