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同等のことを行います。

使用される方法がハックであろうと迂闊であろうと、私はまったく気にしません。それがブラウザ固有のものであっても、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 に答える