CSS / JavaScript:获取元素的用户可见文本

Sai*_*Sai 5 javascript css jquery innerhtml

假设我有以下HTML:

<div id="test">
  <span style="display:inline;">foo</span>
  <span style="display:none;">bar</span>
  <span style="display:inline;">baz</span>
</div>
Run Code Online (Sandbox Code Playgroud)

.. JavaScript中有什么办法让我获取输出“ foo baz”(不是“ foo bar baz”)吗?

$('test').textContent返回后者,并innerHTML执行等效操作。

我根本不在乎所使用的方法是hackhack还是环形交叉路口,如果它是特定于浏览器的或需要Flash,则可以对其进行处理。

但是,除了JS或Flash之外,它不需要其他任何内容,不需要任何用户交互,并且它不得返回“ bar”。

有想法吗?

Nic*_*ver 4

您可以执行此操作,但请注意,它不会像您的示例那样有空格,因为标记中没有空格:

$("#test :visible").text()
Run Code Online (Sandbox Code Playgroud)

这是一个替代方案,就像您为每个跨度间隔的示例一样:

var s = new Array();
$("#test :visible").each(function() {
   s.push($(this).text());
});
alert(s.join(' '));
Run Code Online (Sandbox Code Playgroud)