2つのドロップダウンがあり、一方が他方に影響を与えます。最初のものは2番目のフィルターとして機能します。IE8では、オプションを非(display:none)
表示にすることはできません。したがって、実際にオプションを削除する必要があります。ただし、オプションを元のリストにリセットして、別のチーム用に再度フィルタリングできるようにしたいと思います。問題は、オプションを削除して元に戻さないか、何も削除しないことです。私の腸は、それが参照に関連している、または新しいオブジェクトをDOMに戻すことに関連していると言っています。
最初のドロップダウン(dd1)-これのhtmlは私のコードに正しくあり、表示するのに苦労しました。
<select id="pTeamFilter" onchange="teamChanged();" name="pTeamFilter">
<option value="0">select a Team</option>
<option value="4"> Property Team </option>
<option value="7"> Rick's Team </option>
<option value="10"> Robert's Team </option>
</select>
2番目のドロップダウン(dd2)
<select id="pAnalystFilter" name="pAnalystFilter">
<option value="0">select an Analyst</option>
<option data-teamid="7" value="682"> Clark Kent </option>
<option data-teamid="10" value="652"> Bruce Wayne </option>
<option data-teamid="10" value="7"> Peter Parker </option>
<option data-teamid="13" value="971"> Bruce Banner </option>
</select>
JS / jQ:
var analystFullArrayElement;
jQuery(document).ready(function() {
analystFullArrayElement = jQuery(document.getElementById('pAnalystFilter')).clone();
});
function teamChanged() {
//get the team id
var teamId = document.getElementById('pTeamFilter').value;
//get full list of Analysts.
var newAnalystElement = jQuery(analystFullArrayElement).clone();
jQuery('option', newAnalystElement).each(function() {
//remove unwanted analysts
if ((jQuery(this).attr("data-teamid") != teamId) && (jQuery(this).val() != 0)) {
jQuery(this).remove();
}
});
document.getElementById('pAnalystFilter').innerHTML() = jQuery(newAnalystElement).html();
//var analystElement = document.getElementById('pAnalystFilter');
//jQuery(analystElement).val(0);
}