![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
keywordたとえば23と入力したら、一度は結果がでますが、そのあと先に進めません。結果表示を
クリアして、元の入力待ちにする方法を教えてください。
<HTML>
<HEAD>
<TITLE>検索sample</TITLE>
</HEAD>
<SCRIPT language="JavaScript">
var Namae=new Array(5000);
Namae[1] ="A123456789";
Namae[2] ="B12789";
Namae[3] ="C4569";
Namae[4] ="D123";
Namae[5] ="E6789";
str = prompt("含まれる文字 or 断片をいれてください");
for(i=1; i<6; i++){
if(Namae[i].indexOf(str)>0){
document.write("<tr><td>", "No.",i," *",Namae[i],"</td></tr><BR>");
}
}
str = prompt("Keyword or 断片をいれてください");
</SCRIPT>
</BODY>
</HTML>
No.2ベストアンサー
- 回答日時:
No1です。
少し時間があったので、・・・
No1の前半にあげた、要素を生成・追加する方法での一例です。
<!DOCTYPE HTML>
<html lang="ja">
<head><title>Sample</title>
<style type="text/css">
.quest input{ margin: 1em; }
.result li{ display:flex; margin-bottom:0.4em; }
.result li span { width:5em; flex-shrink:0; }
.result li span::before { content:"・No"; }
.result li p { margin:0; }
</style>
</head>
<body>
<div class="quest">
<input type="text" size="24" placeholder="Keyword or 断片を入力" />
<input type="button" value=" 検索 " />
</div>
<hr />
<ul class="result"></ul>
<script type="text/javascript">
var Namaes = ["A123456789", "B12789", "C4569", "D123", "E6789"];
function QS(sel){ return document.querySelector(sel); }
QS(".quest input[type='button']").addEventListener('click', function(){
var str = QS(".quest input").value;
if (str == "") return;
var i, html = "";
for(i=0; i<Namaes.length; i++){
if(Namaes[i].indexOf(str)>-1){
html += "<li><span>" + (i+1) + "</span><p>" + Namaes[i] + "</p></li>";
}
}
QS(".result").innerHTML = html;
}, false);
</script>
</body>
</html>
さっそく教えていただき有り難うございました。
わたしにはぜんぜん書けないような構文です。
試してみたら見事に走りました。使わせていただきます。
No.4
- 回答日時:
こんちは
俺も書いてみた。
(Namaes は、ないだろう! ふっつうは、Namesだよな!)
入力に対しリニアに(350ms後に発火)反応させたつもり。
<!DOCTYPE html>
<meta charset="UTF-8">
<title>Sample</title>
<body>
<p>
<label>KeyWord:</label>
<input id="KEY" type="search">
</p>
<hr>
<ul id="result"></ul>
<script>
class A {
constructor (cbFunc, wait = 350/* ms */) {
this.cbFunc = cbFunc;
this.wait = wait;
this.timerId = null;
}
handleEvent () {
this.timerId || clearTimeout (this.timerId);
this.timerId = setTimeout (this.caller.bind (this), this.wait);
}
caller () {
this.timerId = null;
this.cbFunc ();
}
}
class B {
constructor (list, texts = []) {
this.list = list;
this.texts = texts;
this.create (texts);
}
create (texts = []) {
let
p = this.list,
li = p.ownerDocument.createElement ('li');
for (let e of p.querySelectorAll ('li'))
e.remove ();
for (let t of texts)
p.appendChild (li.cloneNode (false)).textContent = t;
}
}
const
Namaes = ["A123456789", "B12789", "C4569", "D123", "E6789"],
FIND = new A (searchKey),
LIST = new B (document.querySelector ('#result')),
KEY = document.querySelector ('#KEY');
function searchKey () {
let val = KEY.value;
if (val)
LIST.create (Namaes.filter (n => -1 < n.indexOf (val)));
}
document
.querySelector ('#KEY')
.addEventListener ('input', FIND, false);
</script>
No.1
- 回答日時:
こんにちは
そのままでもできないことは無いですが、document.writeではなく。要素を生成して追加するような方法にした方が良いと思います。
https://developer.mozilla.org/ja/docs/Web/API/Do …
https://developer.mozilla.org/ja/docs/Web/API/No …
というよりも、その前に、作成しようとしているHTMLが、いきなり
<tr><td>~~</td></tr><BR>
<tr><td>~~</td></tr><BR>
・・・・・・・
のようになっているけれど、文法的に table要素で包含する必要がありますし、tableの子要素には<br>はおけないはずです。
また、document.writeへの引数は単純な文字列だと思いますので、連結しておいた方が無難かも。
https://developer.mozilla.org/ja/docs/Web/API/Do …
どうしてもそのままの形式でなさりたいのなら、繰り返すことが必要なので
var str;
while(str !== null){
// 以下、繰り返したい処理
str = prompt("含まれる文字 or 断片をいれてください");
// ・・・・
}
みたいな構文にしておくことで、一応、繰り返すはずです。
promptの入力で、cancelするとループを抜けます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- C言語・C++・C# C言語の質問です HTMLでこのようなコードを書いたのですがそれをC言語で同じように書きたいです < 1 2022/08/11 23:38
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<JavaScript>tableタグを入力不...
-
selectのonChangeが動作しません
-
javascriptで画像をテーブルに...
-
プルダウンメニューを表の中に...
-
javascriptでクリックするごと...
-
Javascriptでテーブルタグの座...
-
画面表示とともに、テーブルの...
-
javascriptでダブルクオテーシ...
-
テーブルの行数を可変長にした...
-
return trueとreturn falseの用...
-
value内に変数を入れたい
-
プルダウン 項目が多いので先頭...
-
【jQuery】input nameの文字列...
-
フォームが空欄の時にフォーム...
-
tableの任意行にfocusをあてる
-
select要素のvalueを配列で取得...
-
同じ名前のセレクトがある場合...
-
onClick="this.form.submit
-
onclickで2個指定するには?
-
ボタンを押すとテキストボック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<JavaScript>tableタグを入力不...
-
selectのonChangeが動作しません
-
テーブルの行数を可変長にした...
-
画面表示とともに、テーブルの...
-
javascriptで<table>背景色の取得
-
javascriptでクリックするごと...
-
テキストエリアに入力した改行...
-
JQueryでテーブルの行を追加し...
-
javascriptで画像をテーブルに...
-
クリックごとに文字色が交互に...
-
カレンダーに印を付けたい
-
任意に文字数指定のできる原稿...
-
idの振り直しについて
-
tbody要素のinnerHTMLが書き換...
-
複数画像のロールオーバー
-
指定のテキストをクリックする...
-
マウスが重なったら画像の上に...
-
jQueryでの親の親の隣の子供の...
-
JavaScript 保守性の高めたい 2
-
Javascriptでの開閉リストの質問
おすすめ情報