假设我有以下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'。
想法?
答案 0 :(得分:4)
你可以这样做,但请注意它没有像你的例子那样的空间,因为标记中没有空格:
$("#test :visible").text()
这是一个替代方案,例如每个范围间隔的示例:
var s = new Array();
$("#test :visible").each(function() {
s.push($(this).text());
});
alert(s.join(' '));