アプリ版:「スタンプのみでお礼する」機能のリリースについて

[Javascript]セル内の文字列の部分一致でテーブルの列を絞り込みたい。

現在、Javascriptを使って表のソートや絞り込みができるページを作っています。
http://www.asahi-net.or.jp/~mc9m-ehr/soft/script …
こちらのような感じで、
ドロップダウンリストからキーワードを選ぶと、
該当する列が絞り込み表示できるようにしたいのですが、
このままのスクリプトだと、セル内の文字列が完全に一致しないとできないようです。

現状はhead内に<script type="text/javascript" src="tablefilter.js"></script>と書き、
bodyの部分に

<select onchange="tblfilter('tableID',this.options[this.selectedIndex].value,1,1,0);">
<option value="All">カテゴリー</option>
<option value="ミステリ">ミステリ</option>
<option value="恋愛小説">恋愛小説</option>
<option value="ノンフィクション">ノンフィクション</option>



</select>

のような感じでドロップダウンリストを付けています。
表の内容は左から順に以下のように並んでいます↓

[1]本の表紙画像
[2]本のカテゴリー(コミック、洋書、ミステリ、ホラー、純文学など1セルにつき一つ)
[3]著者名:本の題名(例 村上春樹:ノルウェイの森)
[4]100~200文字程度の感想+キーワード(恋愛、笑い、泣ける、映画原作など1セルに複数)
[5]読了日(例 2010/10/07)

キーワードは、セルの中にリストタグを入れて横並びで表現しています。

上で挙げたスクリプトを使うと、
[2]は1セルに1つなのでそれをドロップダウンリストに入れて絞り込むことはできるのですが、
[3]だと著者名と本の題名の両方が一致していないと絞り込めません。
[4]でキーワードにしてある言葉をドロップダウンリストに入れて、
該当するものを抽出できるようにもしたいのですが、これもできません。

これが出来るような配布スクリプトをご存じであれば教えてください。
もしくは、上記のスクリプト(tablefilter.js)に少し手を加えることで実現できるなら、
具体的にご教示いただけるとうれしいです。

A 回答 (11件中11~11件)

詳しく見てませんが、


「tablefilter.js」の中の

function arrayFind(arr,key){
 for(var i=0;i<arr.length;i++){
  if (arr[i]==key)
   return i;
 }
 return -1;
}

の部分の if (arr[i]==key)を

if (arr[i].indexOf(key)>0)

にしてみてはどうですか?
    • good
    • 0

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