5

假设我有以下 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还是roundabout,如果它是特定于浏览器的或需要Flash,我可以处理它。

但是,它不能需要 JS 或 Flash 以外的任何东西,不能需要任何用户交互,并且不能返回 'bar'。

想法?

4

1 回答 1

4

您可以这样做,但请注意它不会像您的示例那样有空格,因为标记中没有空格:

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

这是另一种选择,例如您的示例为每个跨度间隔开:

var s = new Array();
$("#test :visible").each(function() {
   s.push($(this).text());
});
alert(s.join(' '));
于 2010-02-28T14:19:09.487 回答