在IE中限制数据属性的长度?

时间:2014-10-15 22:02:16

标签: javascript jquery html internet-explorer

据我所知,数据属性的长度没有限制(如果我错了,请纠正我)。但是,当我有一个包含大量字符的数据属性时,IE中会发生一些奇怪的事情。基本上我想使用jQuery来显示特定的div,如果数据属性data-zip包含用户输入的特定zip。

在FireFox,Chrome和Safari中,一切都很适合我,但我注意到我无法在我尝试过的任何IE版本中使用它(8/9/10)。我开始创建一个JSFiddle,在数据属性中添加了明显更少的邮政编码,所以我可以在这里发帖,但是当我意识到我的小提琴在IE中正常工作时,只要字符数在数据属性保持不变。

我还注意到,如果我将所有的邮政编码输入到JSFiddle的data属性中,JSFiddle认为代码格式不正确(虽然代码仍然在现代浏览器中按预期工作,所以这可能是无关紧要的)。

我在IE中使用了F12开发人员工具来检查这些元素,并注意到当我输入所有的邮政编码时,看起来似乎没有一个在IE中实际被解析,如下所示:

enter image description here

这可能解释了为什么我的代码在IE中无法正常工作(因为data-zip属性显示为空)。有谁知道这里发生了什么以及如何纠正这种情况?

Here is a JSFiddle,第一个元素具有我可以放入数据属性的最大字符数,在JSFiddle中,在语法高亮显示被抛出之前,第二个元素显示突出显示异常。在我试过的任何IE浏览器版本中都没有正确解析,但在现代浏览器中,它可以按预期工作。

1 个答案:

答案 0 :(得分:1)

您必须删除选择器中的"才能使其在IE中运行:

所以'.contentBlock[data-zip*='+ userZip +']'代替'.contentBlock[data-zip*="'+ userZip +'"]'。在IE 9-11版本中测试过(jsFiddle在IE8中效果不佳)。

顺便说一句,

'[data-zip*='+ userZip +']'也会奏效。