
表題の通りなのですが、javascriptなどで実現可能でしょうか?
http://g5187066.k-free.net/
【ソース】
<body>
<div>
<input type="text">
<input type="submit" value="検索">
</div>
<ul>
<li>あいうえお</li>
<li>かきくけこ</li>
<li>さしすせそ</li>
<li>たちつていうえと</li>
<li>なにぬねの</li>
</ul>
</body>
上記のようなhtmlページがあり、例えば
「いうえ」とフォームから検索したら1番目の<li>要素と4番目の<li>要素が表示され、そのほかの<li>要素は hidden になるようなイメージです。
ヒットする文字列を含む<li>要素以外にjavascriptでクラスを付与させ、そのクラスのスタイルに display:none; などのスタイルを当てることで実現できそうな気はするのですが、どう書けばよいのか全然わからず、もしもご存知の方がいらっしゃいましたらご教授いただければ非常に助かります…
もしくは上記のようなことが実現できるjqueryのプラグインなどが存在するのであればこちらもご教授いただければ非常に助かります…
結構探したのですが見つかりませんでした。。(>_<)
No.2ベストアンサー
- 回答日時:
エンターはsubmitですからねぇ・・・
trimなど一部仕様外を含めバグっていたのをなおして
こんな感じでどうでしょうか?
<style>
li.hide{display:none;}
</style>
<script>
try{
document.addEventListener('keypress',function(e){pressfunc(e)},true);
}catch(e){
document.attachEvent('onkeypress',function(e){pressfunc(e)});
}
function pressfunc(e){
var t = (e.srcElement || e.target);
if(e.keyCode==13 && t.name=="keyword"){
searchword();
if(e.preventDefault){
e.preventDefault();
}else{
e.returnValue=false;
}
}
}
function searchword(){
var v=document.getElementById("keyword").value;
var n1=document.getElementById("wordlist");
var n2=n1.getElementsByTagName("li");
for(var i=0;i<n2.length;i++){
var cn=n2[i].className;
cn=cn.replace(/(^|\s)hide(\s|$)/,"");
if(! n2[i].innerHTML.match(new RegExp(v))){
n2[i].className=(cn+(cn==""?"":" ")+"hide");
}else{
n2[i].className=cn;
}
}
}
</script>
<form>
<input type="text" name="keyword" id="keyword" value="いうえ">
<input type="button" value="検索" onclick="searchword()">
</form>
<ul id="wordlist">
<li>あいうえお</li>
<li>かきくけこ</li>
<li>さしすせそ</li>
<li>たちつていうえと</li>
<li>なにぬねの</li>
</ul>
もう何というか、完璧にこれです…。
なんかもう本当に( ゚Д゚)←です…。
これだけスラスラとjavascriptなどを取りまわせる神様になりたいです…。
本当にありがとうございました(;´Д`)!
No.1
- 回答日時:
なんの工夫もなくいわれた通り書くとこんな感じ?
<style>
li.hide{display:none;}
</style>
<script>
function searchword(obj){
var v=obj.form.elements["keyword"].value;
var n1=document.getElementById("wordlist");
var n2=n1.getElementsByTagName("li");
for(var i=0;i<n2.length;i++){
var reg=new RegExp("(^| )hide( |$)");
var cn=n2[i].className;
cn=cn.replace(reg,"");
if(!n2[i].innerHTML.match(v)){
n2[i].className=(cn+" hide").trim();
}else{
n2[i].className=cn;
}
}
}
</script>
<form>
<input type="text" name="keyword" value="いうえ">
<input type="button" value="検索" onclick="searchword(this)">
</form>
<ul id="wordlist">
<li>あいうえお</li>
<li>かきくけこ</li>
<li>さしすせそ</li>
<li>たちつていうえと</li>
<li>なにぬねの</li>
</ul>
うわぁ~(>o<;;)
すごいですね…
サラサラーと…(;´Д`)
ありがとうございます!
これで全然問題ないのですがキーワード入れてエンターでは動かないものなんですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- HTML・CSS リストの並べ替え 1 2022/09/13 15:27
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- その他(プログラミング・Web制作) pythonリストの特定の値を表示htmlで表示できない 2 2022/05/14 05:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jQueryでネスト構造の<li>がク...
-
jQueryのeqで最後からn番目以降...
-
jQueryで記事を6列表示にした...
-
オブジェクトがありませんのエラー
-
【jQuery】遅延実行(タイムラ...
-
1枚の画像をクリックすると複数...
-
MAX関数を使ってからLEFT JOIN...
-
背景画像
-
javascript imageオブジェクト...
-
背景画像がつられてのびていく...
-
clear機能を失わずにファイルア...
-
JimdoでWebアイコンフォントの...
-
画像をフォルダに入れれば表示...
-
指定字数以降隠す
-
jspでcssが読み込めない
-
テキストボックスに入力された...
-
隣のフレームの中のスタイルを...
-
アニメーションをループさせたい
-
季節毎に自動で異なるhtmlを表...
-
画像に透明度をかけて、変数に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jqueryのsortableで一部ソート...
-
同一ページ内で、任意の文字列...
-
タブ切り替えの初期表示について
-
ネストされたチェックボックス...
-
JQueryタブのアクティブ アン...
-
Jquery の slide.toggle で要素...
-
ホームページビルダー17のフ...
-
【javascript で動的に a タグ...
-
javascriptで正規表現の検索が...
-
JavascriptのDOMについて
-
javascript テキストエリアを1...
-
for(var i=0;...) の i の値を...
-
クリックで表示、非表示するメ...
-
jQueryで電卓を作っているのですが
-
js ライブラリ iscrollの利用に...
-
jquery ドロップダウンメニュー...
-
プルダウンのメニュー表示について
-
jQueryのhide,showで中の要素が...
-
gridstack.jsについて教えてく...
-
【HP制作】メールフォームの設...
おすすめ情報
うわぁ~(>o<;;)
すごいですね…
サラサラーと…(;´Д`)
ありがとうございます!
これで全然問題ないのですがキーワード入れてエンターでは動かないものなんですか?