我试图从选择中隐藏一些选项。使用的解决方案是这样的:
this.selectBox.children(".myOption_"+optionValue).wrap("<span></span>");
this.selectBox 是上述选择的 jQuery 对象。
在 Firefox 中它工作得很好,但在 IE8 中没有反映更改:如果您应该查看选择,它似乎没有变化。但是,如果用户选择了一个选项,则该值会尊重已删除的元素。
这是一个例子:
<option value="val1">Test1</option>
<option value="val2">Test2</option>
<option value="val3">Test3</option>
<option value="val4">Test4</option>
现在,当我选择“Test1”时,会调用一个函数并执行上述代码。从用户的角度来看,选项将保持不变。但是,如果他现在再次尝试选择“Test1”,则提供的值实际上将是“val2”,并且应该删除该选项。同样,什么也没有发生,所以他再次选择“Test1”,值将是“val3”,依此类推。
为了显示发生的更改,我必须隐藏然后显示选择。
this.selectBox.children(".myOption_"+optionValue).wrap("<span></span>");
this.selectBox.hide().show();
上面的代码将使更改可见(隐藏单击的选项)。
更让人好奇的是这个小提琴:
http://fiddle.jshell.net/FAkEK/25/show/
在同一个浏览器上正常工作。
我不明白为什么会突然发生这种情况。
为什么会这样?我应该在哪里寻找问题?