重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

jQueryの処理を高速にするため、スクリプトを現在、見直しています。

すみませんが、またまた質問させてください。

HTML側にふられている変数(var page;)の値を取得し
その変数によって、bodyに別々のclassを追加したいと思っています。
HTMLは数ページあり、それぞれ異なる値です。

$(function(){
if(page.indexOf("あああ")!=-1){
$("body").addClass("aaa");
}else if(page.indexOf("かかか")!=-1){
$("body").addClass("kkk");
}else if(page.indexOf("さささ")!=-1){
$("body").addClass("sss");
}
});

上記のようにやっているのですが、
if文より、switch文でやったら早いかなぁと思いいろいろ試しています。

ですが、indexOfで取得しているように、var pageで取得したい文字は一部分なのです。

↓こんな感じです。
var page = "あああいいい";
var page = "かかかききき";
var page = "さささししし";

なので、switch文のcaseに置く定数式に、ぴったり当てはまる文字列ではないのです。


以下の例は3つの条件ですが、
実際は10ページ近くあるので、それをすべてif文で書くのはスマートでない気がします。

そもそも、こういった場合はif文を使うしかないのでしょうか?

switch文でなくても、他のやり方でも、
何か早く処理できる方法がありましたら教えてください。

宜しくお願いいたします。

A 回答 (1件)

page.match(/あああ|かかか|さささ/)

    • good
    • 0
この回答へのお礼

ありがとうございます。

なるほど~
match()を使うんですね。

matchをあまり使いこなせていないので
もっと勉強したいと思います。

参考になりました。
ありがとうございました。

お礼日時:2012/07/04 10:50

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