プロが教える店舗&オフィスのセキュリティ対策術

<p>q01</p>
<p>b</p>
<p>cx</p>
<p>qa02</p>
<p>b</p>
<p>qdg03</p>
<p>b</p>
<p>cx</p>
<p>qa04</p>
<p>b</p>
<p>qdg05</p>
<p>q06</p>
<p>b</p>
<p>cx</p>
<p>qa07</p>
<p>b</p>
<p>qdg08</p>
<p>q09</p>
<hr>

<script type="text/javascript">
var b = document.getElementsByTagName("p");
for (i=0; i<b.length;i++){
if (b[i].childNodes[0].nodeValue.match("q","i")){
document.write(b[i].childNodes[0].nodeValue+"<br>");


}

}

</script>

</body>
</html>

Java Scriptの超初心者です。
このスクリプトは、<p>タグで囲まれた文字列が19種類あって、そのなかの q の文字が含まれている
文字列を抜き出し、表示するという簡単なものです。結果は次のようになります。

q01
qa02
qdg03
qa04
qdg05
q06
qa07
qdg08
q09

そこで、教えていただきたいのは、このqの含まれている文字列は全部で9個ありますが、そのうちのどれでもいいから、
5個のみを表示させるようにするのはどうしたらいいかということです。break文を使っていろいろと試してみましたが、
うまくいきませんでした。 ヒントというか、考える手がかりがありましたら、ご教授ください。
よろしくお願いします。
実際に抱えている問題は、xmlファイルに5000件の住所録があり、その中に例えば 札幌市の含まれるデータが500件あり、そのうちのどれでもいいから200件のみを表示させたいというものです。ということで、この問題を解決する手がかりを
得るために、上記のような簡単なスクリプトを作ってみました。これを使って、色々と実験してみましたが、現在の私の知識ではうまくいきませんでした。

A 回答 (1件)

>そのうちのどれでもいいから、5個のみを表示



どれでも良いなら、先頭の5個のみ表示させることにするとか:

for (var n = 5, i=0; i<b.length && n > 0;i++){
if (b[i].childNodes[0].nodeValue.match("q","i")){
document.write(b[i].childNodes[0].nodeValue+"<br>");
--n;
}
}
    • good
    • 0
この回答へのお礼

なるほど、 こういうやり方があるんですね。
処理を繰り返すたびに n-1 を実行するわけですね。
二日間考えても堂々巡りで 解決に至らなかったもんですから、

こんなにいとも簡単に解答を出せるんなんて、すごい。
ありがとうございます。 たすかりました。

お礼日時:2008/04/05 11:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!