Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择后,“选择”选项的文本将不同 问题_Javascript_Jquery_Html_Internet Explorer - Fatal编程技术网

Javascript 选择后,“选择”选项的文本将不同 问题

Javascript 选择后,“选择”选项的文本将不同 问题,javascript,jquery,html,internet-explorer,Javascript,Jquery,Html,Internet Explorer,这很难解释,所以请容忍我。今天我遇到了一个我解决了的奇怪场景,但我不确定为什么我的解决方案有效 我创建了一组select并编写了一个脚本,通过从其他select列表中删除selected选项来限制您多次选择相同的选项 然而,在IE9中,选项列表显示了错误的选项,但一旦选中,它将显示正确的选项 重新创建错误 在我的第一个脚本中,您可以通过执行以下操作达到此状态: 注意:这只是IE。在铬上可以很好地工作 脚本: 在第一个下拉列表中选择3 在第二个下拉列表中选择1 在第一个下拉列表中,选择1不应是可用

这很难解释,所以请容忍我。今天我遇到了一个我解决了的奇怪场景,但我不确定为什么我的解决方案有效

我创建了一组select并编写了一个脚本,通过从其他select列表中删除selected选项来限制您多次选择相同的选项

然而,在IE9中,选项列表显示了错误的选项,但一旦选中,它将显示正确的选项

重新创建错误 在我的第一个脚本中,您可以通过执行以下操作达到此状态:

注意:这只是IE。在铬上可以很好地工作

脚本:

在第一个下拉列表中选择3 在第二个下拉列表中选择1 在第一个下拉列表中,选择1不应是可用选项 请注意,选定的值为2! 请注意,在第二个下拉列表中更改选定值也会产生与显示值不同的值。 最后,请注意DOM显示的是正确的值 神奇地修正错误 现在是我通过随机猜测找到的修正

脚本:

这样创建我的选择会导致奇怪的行为:

var $S1 = $('<select class="question" />'); 
var $S1 = $('<select />', {'class': 'question'}); 
这样创建“我的选择”可更正该行为:

var $S1 = $('<select class="question" />'); 
var $S1 = $('<select />', {'class': 'question'}); 
跟进 上面两个jQuery对象的区别是什么? IE怎么能在DOM中显示一件事,在实际页面上显示另一件事呢?我知道CSS可以做到这一点,但没有涉及CSS?如果这只是一个IE6-8的东西就不会那么糟糕了,但它在IE9中是可以复制的! 可能是IE bug还是jQuery bug? 最后,也许我刚刚做了一些难以置信的蠢事,在我歇斯底里的时候,我编造了一些荒谬的结论。如果我这样做了,请温和地通知我。

我补充道

`$("select.question").val('[what ever selection you want selected');`

让它工作。或者我误解了你的问题。

两个DOM对象之间的区别不是数据问题,而是创建它们时的操作顺序问题

当您使用$的内联时,创建元素时类已经完好无损,并相应地设置样式。当您使用$,{'class':'blah'}`时,您将执行2个操作:1创建项,2设置它的类

这似乎是无害的,但实际上它迫使浏览器在应用CSS类时重新绘制元素

现在-在您的场景中,这导致了它所造成的特定问题,这一事实很明显是一个适用于IE的bug-但IE不应该表现糟糕的事实显然并不能阻止它这样做


希望这能说明一些问题。

您的小提琴和使用您所说的select格式导致问题的a在IE9中看起来很好。此选择器:>选项:selected在语法上无效,是吗?我认为你不能像那样用>来启动选择器,而且这也不是必须的。@jamesalardice-你提供的修改过的提琴仍然会在我的IE浏览器中引起问题……而且据我所知,你的第一个提琴16在IE9中工作得非常好。然而,我不理解问题的描述。@BrandonBoone-我无法在IE9、8或7的Windows 7上按照你或我的步骤重现问题。问题不在于如何使其工作,我已经有了上面的解决方案。这更多的是一个天气的问题,最初的代码被破坏是由于jQuery和/或InternetExplorer中的一个bug造成的。我提交了一份最近已进入开放状态的文件。看来他们已经意识到了这个问题。谢谢你的澄清。很高兴它起作用了。您可能发现了一个bug。我会对结果感兴趣。