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

时间:2010-02-28 14:14:58

标签: javascript jquery css innerhtml

假设我有以下HTML:

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

..在JavaScript中有什么方法可以让我输出“foo baz”(不是“foo bar baz”)?

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

如果使用的方法是hackish或迂回,我根本不关心,如果它是特定于浏览器或需要Flash,则可以处理它。

但是,除了JS或Flash之外,它不能要求任何其他内容,它不能要求任何用户交互,也不能返回'bar'。

想法?

1 个答案:

答案 0 :(得分:4)

你可以这样做,但请注意它没有像你的例子那样的空间,因为标记中没有空格:

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

这是一个替代方案,例如每个范围间隔的示例:

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