「ボックス」で始まるすべての要素を選択しようとしています。これは私の既存のコードです:
if (($(this).attr('title') == 'Box a') || ($(this).attr('title') == 'Box b')) || ($(this).attr('title') == 'Box c')) {
// do stuff
}
これを短くする方法はありますか?
ありがとう
「ボックス」で始まるすべての要素を選択しようとしています。これは私の既存のコードです:
if (($(this).attr('title') == 'Box a') || ($(this).attr('title') == 'Box b')) || ($(this).attr('title') == 'Box c')) {
// do stuff
}
これを短くする方法はありますか?
ありがとう
CSSシンボルを使えば可能です!
^
シンボル。
$(element[title^='box']);
element
これにより、タイトル フィールドが で始まるすべての要素が選択されbox
ます。
アップデート:
これを試して。
var regEx = /^Box/;
if(regEx.test($(this).attr('title'))){
}
あなたが使用することができます:
$('[title^=box]')
または、検索を簡単にするために、次のようにすることもできます。
var title = $(this).attr('title').replace("Box ", "");
if(['a', 'b', 'c'].indexOf(title) != -1)
{
//do stuff
}
説明 :
replace
parameter1 として送信した文字列を 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
}
これで問題が解決することを願っています!