残念ながら、別のブラウザを使用する選択肢はありません。jQuery .is()in Internet Explorer 7
私はいくつかのHTMLに対して以下のコードを実行しています。問題は、私が思うに、4行目です。Internet Explorer 7は、 "yellowOne"というid(または他の行)の行をクリックすると、何もしません。私が.is('tr.grayheading')
を取った場合、IEはyellowXクラスですべての行を開きます。しかし、私はそのyellowXクラスとgrayheadingクラスの両方を持つものだけが必要です。
function showTheGray($yellowSection) {
$theYellowClass = 'yellow' + $yellowSection;
if ($($theYellowClass).is(':hidden')) {
$($theYellowClass).is('tr.grayheading').show('normal');
} else { $($theYellowClass).hide('normal'); }
}
$(document).ready( function() {
$('tr#yellowHeadOne').click(
function($e) {
showTheGray('One');
}
);
$('tr#yellowHeadTwo').click(
function($e) {
showTheGray('Two');
}
);
$('tr#yellowHeadThree').click(
function($e) {
showTheGray('Three');
}
);
});
IE7には複数のクラスに要素が割り当てられていますか?つまり、class="yellowOne grayheading"
セレクタを間違って書きましたか?
IE7は.is()
と似ていませんか? ($($theYellowClass).is(':hidden').show('normal')
行がエラーを投げたので、私はifブロックに切り替えるので質問します)
これはまさに私が望んでいたものではありませんでしたが、コードを正しく取得するために必要なキーが私に与えられました。 私は最新のものをアップロードしていませんが、私のローカルコピーはうまくいっています。この行は、私が望むことをしました: '$($ theClass).filter( '。grayheading')フィルタ( ':hidden')show( 'normal');' –
その行に基づいて – Evan