質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

2918閲覧

javascriptで検索した文字列をハイライトするコードを書きたいのですがエラーがでます

drizzing20

総合スコア363

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2016/10/21 11:36

編集2016/10/21 11:41

JSdiddleのページですここで作業してます
http://jsfiddle.net/MrTK1230/xeq9oau9/8/

javascriptで検索した文字列をハイライトするコードを書きたいのですがエラーがでてしまいます。
formを追加した途端このエラーがでたのですが、どこが間違っているのかわかりません。分かる方お願いします。

↓がエラーです。

VM11434:90 Uncaught TypeError: $(...) is not a function

CSS

1.container p{ 2 line-height: 1.6; 3} 4 5 6.faq .highlight{ 7 background-color: #fffd77; 8} 9 10

JavaScript

1$(function(){ 2 var $container = $('.faq'); 3 if(!$container.length) return true; 4 var $form = $(".form:first"); 5 var $input = $(".textarea:first"); 6 var $lis = $container.find('> ul > li'); 7 var $item; 8 var li_arr = []; 9 10 $lis.each(function(){ 11 li_arr.push($(this).text().replace(/\s{2,}/g, ' ').toLowerCase()); 12 }); 13 14 $form.on("submit", function(e){ 15 $lis.each(function(){ 16 $item = $( this ); 17 $item.html( $item.html().replace(/<span class="highlight">([^<]+)<\/span>/gi, '$1')); 18 }); 19 20 var searchVal = $.trim($input.val()).toLowerCase(); 21 if(searchVal.length){ 22 for(var i in li_arr){ 23 $item = $lis.eq(i); 24 if( li_arr[i].indexOf(searchVal) != -1) 25 $item.removeClass('is-hidden').html($item.html().replace(new RegExp(searchVal+'(?!([^<]+)?>)', 'gi'), '<span class="highlight">$&</span>')); 26 27 } 28 } 29 30 }); 31})(); 32

HTML

1<div class="container" role="main"> 2 <div class="faq"> 3 <form name="form1" method="POST" class="form"> 4 <input type="text" name="word" value="aaa" class="textarea"/> 5 <input type="submit" value="送信" /> 6</form> 7 8 <ul> 9 <li id="faq-1"> 10 <h2>東京</h2> 11 <div> 12 <p>東京は、江戸幕府の所在地の江戸を1868年9月に改称したものである。 13「東京」という名称を用いる構想は江戸時代後期の佐藤信淵の書にあり、大久保利通がその書の影響を受けつつ「東京」とすることを建言した。 141869年2月11日1878年(明治11年)に府制を施行[1]、「東京府」となった。</p> 15 </div> 16 </li> 17 <li id="faq-2"> 18 <h2>大阪</h2> 19 <div> 20 <p>「大坂」という地名は、元は大和川と淀川(現在の大川)に間に南北に横たわる上町台地の北端辺りを指し、古くは摂津国東成郡に属した。</p> 21 </div> 22 </li> 23 <li id="faq-3"> 24 <h2>京都</h2> 25 <div> 26 <p>東アジアでは古来、歴史的に「天子の住む都」「首都」を意味する普通名詞として京(きょう)、京師(けいし)が多く使用されていた。西晋時代に世宗(司馬師)の諱である「師」の文字を避けて京都(けいと)と言うようになり、以後は京、京師、京都などの呼び名が用いられた。</p> 27 </div> 28 </li> 29 30 </ul> 31 <div class="faq__notfound"><p>キーワードが見当たりません。他のキーワードをお試し下さい</p></div> 32 </div> 33 34</div>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

event.preventDefault() がないので submit されていますね。

Re: drizzing20 さん

投稿2016/10/21 12:06

think49

総合スコア18162

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

drizzing20

2016/10/21 12:08

ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問