アクティブ/非アクティブなユーザーの表があり、変更されるとアクティブまたは非アクティブのユーザーの表示を切り替えるドロップダウンがあります。それは正常に動作していますが、私はどのように他の行を陰にしておくのか分かりません。私は、ドロップダウン後に各関数の最後に特定の行を表示/非表示にすると、1行おきに陰影が表示されます
$(this).find("#tableUsers tr").not(":hidden").filter(":even").addClass("altr");
を追加しました変更されたが、私の推測では、すべての行にかかわらず、視認性の偶数か奇数非常に冒頭としてマークされ、変更されません。表示されているかどうかに基づいて表示されます。したがって、ページをロードするとき(アクティブフィルタ上で)、他の行はすべて陰影付けされますが、ドロップダウン(行のブロックは影付き)を変更するとシェーディングがオフになります。
コード:
$(document).ready(function(){
// on load, show only active users
$('#tableUsers tr').each(function(){
var status = ($(this).attr('id'));
if (status == 'userInactive'){
$(this).hide();
}
else if (status == 'userActive'){
$(this).show();
}
});
$(this).find("#tableUsers tr").not(":hidden").filter(":even").addClass("altr");
$('#userTypeDropDown').change(function(){
var option = $(this).val();
if (option == 'Active'){
$('#tableUsers tr').each(function(){
var status = ($(this).attr('id'));
if (status == 'userInactive'){
$(this).hide();
}
else if (status == 'userActive'){
$(this).show();
}
});
$(this).find("#tableUsers tr").not(":hidden").filter(":even").addClass("altr");
}
if (option == 'Inactive'){
$('#tableUsers tr').each(function(){
var status = ($(this).attr('id'));
if (status == 'userActive'){
$(this).hide();
}
else if (status == 'userInactive'){
$(this).show();
}
});
$(this).find("#tableUsers tr").not(":hidden").filter(":even").addClass("altr");
}
if (option == 'Both'){
$('#tableUsers tr').each(function(){
$(this).show();
});
$(this).find("#tableUsers tr").not(":hidden").filter(":even").addClass("altr");
}
});
});
あなたのコードは、あなたがページ上で複数のIDを使用していることを示しているようです。 idは1ページに1回しか指定できません。代わりにクラスを使用してください。 –