2011-02-08 7 views
0

私はテキストiconGroupを含むクラス名の正確な値を見つけようとしていますし、私が使用してクラス名の配列を取得することができています:jQueryの発見クラス名値

var chosenIconClassArray = $('.selectedGroupIcon').attr('class').split(/\s+/); 
console.log(chosenIconClassArray); 
$.each(chosenIconClassArray, function(index, item) { 
    console.log(item); 
}); 

これが与えますコンソール出力:

["createAGroupIconList", "inlinelist", "ram", "left", "iconGroup20", "selectedGroupIcon"] 

createAGroupIconList 
inlinelist 
ram 
left 
iconGroup20 
selectedGroupIcon 

私はそれがあるiconGroup見つけるために、この線に沿って何かを試してみましたが、それはうまくいきませんでした:

if (item ^= 'iconGroup') { 
    console.log($(this)); 
} 

目的は、クラス配列に値iconGroup20(または1,2,3,4などの任意の数値)が含まれていることを伝えることができるようにすることです。次に、別の要素に追加してアイコンを更新します。

どのように配列を検索し、どのiconGroupクラスがそれに含まれているか調べるにはどうすればよいですか?

答えて

2

'iconGroup ##'の形式に一致するアイテムのクラスを検索するものを探していますか?あなたがgetIconGroup(ChosenIconClassArray)を使用できるように機能として動作するように更新さ

function getIconGroup(class_array) { 
    var iconGroup = false; 
    $.each(class_array, function(index, item) { 
    if item.match(/^iconGroup[0-9]+$/) { 
     iconGroup = item; 
    } 
    }); 
    return iconGroup; 
} 

:もしそうなら、このような何かを試してみてください。

+0

Coreyさん、 'each'ループの' iconGroup ## 'の後にクラス配列にクラスが含まれていると、アイテムが' null'で上書きされないようにするにはどうすればいいですか? – iwasrobbed

1

JavaScriptにはString.indexOfというメソッドがあります。あなたが指定した文字列のインデックスを返します。文字列が見つからない場合は-1を返します。

次のコードは、期待しているクラスを提供します。

var chosenIconClassArray = $('.selectedGroupIcon').attr('class').split(/\s+/), 
    foundClass; 
$.each(chosenIconClassArray, function(index, item) { 
    if (item.indexOf('iconGroup') > -1) { 
     foundClass = item; 
    } 
}); 

変数foundClassはフルクラスを含む必要があります。

+0

ありがとうJames、私は 'indexOf'を試しましたが、それがクロスブラウザであるかどうかは分かりませんでした。また、この関数は違法なbreak文を持っていたので機能しませんでした。 – iwasrobbed

+1

申し訳ありません、 'break;を' return false; 'に置き換えてみてください。それが助けになるはずです。 String.indexOfは巨大なブラウザをサポートしているので、自信を持って使用してください –

関連する問題