2

「ボックス」で始まるすべての要素を選択しようとしています。これは私の既存のコードです:

if (($(this).attr('title') == 'Box a') || ($(this).attr('title') == 'Box b')) || ($(this).attr('title') == 'Box c')) {
// do stuff
 }

これを短くする方法はありますか?

ありがとう

4

2 に答える 2

2

CSSシンボルを使えば可能です!

^シンボル。

$(element[title^='box']);

elementこれにより、タイトル フィールドが で始まるすべての要素が選択されboxます。

アップデート:

これを試して。

var regEx = /^Box/;

if(regEx.test($(this).attr('title'))){

}
于 2013-07-06T19:45:33.093 に答える
0

あなたが使用することができます:

$('[title^=box]')

または、検索を簡単にするために、次のようにすることもできます。

var title = $(this).attr('title').replace("Box ", "");
if(['a', 'b', 'c'].indexOf(title) != -1)
{
  //do stuff
}

説明 :

  • replaceparameter1 として送信した文字列を 2 番目のパラメーターに置き換える JS 関数です。ここでは、"Box" (スペースを含む) を "" に置き換え、実際には文字列からそれを削除して閉じています。ドキュメントはこちら
  • ['a','b','c']配列です。その配列を検索するには、次のことができindexOfます。関数が を返す場合-1、タイトルに a または b または c が含まれていないことを意味します。ドキュメントはこちら

ただし、要素のタイトルが「Box」で始まるかどうかを確認したい場合は、次のようにするだけです。

 var title = $(this).attr('title').split(" ")[0]; //this would give you "Box" alone
 if(title.indexOf("Box") != -1)
 {
      //do stuff
 }

これで問題が解決することを願っています!

于 2013-07-06T19:48:50.700 に答える