残念ながら、これはあなたの質問に間接的に答えていますが...要素にクラスがあるかどうかを検出しようとしているようです。すでにjQueryを使用しているので、hasClass
メソッドを使用してください - http://api.jquery.com /hasClass/
特定のコードについては、次を試してください。
if (link.parents("div.fixed_column").hasClass("column_one")) {
// It has the "column_one" class
}
あなたの質問に対するより直接的な答えlink.parents("div.fixed_column").attr("class")
は、単一の文字列を返すことです。jQuery セレクター ( div.fixed_column
) が複数の要素を返す場合、これはクラスを使用する場合に非常に可能性が高く、情報を取得する jQuery メソッドを使用すると (たとえば、.attr
1 つのパラメーターを使用して値を「取得」する)、最初に一致した要素の値のみを返します。
セレクターが 3 つの要素に一致するとします。
["<div id='div30' class='fixed_column div30_class'></div>",
"<div id='div2' class='fixed_column div2_class'></div>",
"<div id='div17' class='fixed_column div17_class'></div>"]
次に、から返される値は次の.attr("class")
ようになりますfixed_column div30_class
。最初に一致した要素だからです。
よくわかりませんが、jQuery が一致したすべての要素の値の配列を返すことを期待していると思いますが、そうではありません。したがって、jQuery がクロスブラウザーの問題を処理していないという意味ではありません。メソッドが何をするか、何を返すかを調べる必要があるだけです。
jQuery 2.0には、ゲッター(または同様のもの)を直接呼び出すことから、あなたが望むことを行うためのオプションがあると誓うことができましたが、もう見つけることができません:(多分私は間違って覚えています.とにかく、あなたは簡単に使用できます$.each
および/または$.map
一致したすべての要素を確認しますが、実際に何をしようとしていたかによって異なります。