Javascript IE中数据属性长度的限制?
据我所知,数据属性的长度没有限制(如果我错了,请纠正我)。然而,当我有一个包含很多字符的数据属性时,IE中发生了一些奇怪的事情。基本上,如果数据属性Javascript IE中数据属性长度的限制?,javascript,jquery,html,internet-explorer,Javascript,Jquery,Html,Internet Explorer,据我所知,数据属性的长度没有限制(如果我错了,请纠正我)。然而,当我有一个包含很多字符的数据属性时,IE中发生了一些奇怪的事情。基本上,如果数据属性datazip包含用户输入的特定zip,我想使用jQuery来显示特定的div FireFox、Chrome和Safari对我来说一切都很好,但我注意到,我无法在我尝试过的任何IE版本(8/9/10)中实现这一点。我开始制作一个JSFIDLE,在数据属性中添加的邮政编码要少得多,所以我可以在这里发布,但那时我意识到只要数据属性中的字符数保持较短,我的
datazip
包含用户输入的特定zip,我想使用jQuery来显示特定的div
FireFox、Chrome和Safari对我来说一切都很好,但我注意到,我无法在我尝试过的任何IE版本(8/9/10)中实现这一点。我开始制作一个JSFIDLE,在数据属性中添加的邮政编码要少得多,所以我可以在这里发布,但那时我意识到只要数据属性中的字符数保持较短,我的FIDLE在IE中就可以正常工作
我还注意到,如果我在JSFiddle上的data属性中输入所有的邮政编码,JSFiddle会认为代码的格式不正确(尽管代码在现代浏览器中仍然可以正常工作,因此这可能无关紧要)
我在IE中使用F12开发者工具检查元素,并注意到当我输入所有邮政编码时,似乎没有一个邮政编码在IE中被解析,如下所示:
这可能解释了为什么我的代码在IE中不能正常工作(因为datazip
属性显示为空)。有人知道这里发生了什么事,我怎样才能纠正这种情况吗
,在JSFIDLE中,第一个元素具有我可以放入数据属性的最大字符数,在语法高亮显示被抛出之前,第二个元素显示高亮显示异常。在我尝试过的任何版本的IE中,这两个选项都没有被正确解析,但在现代浏览器中,它可以正常工作。您必须删除选择器中的
“
,才能在IE中工作:
因此,'.contentBlock[data-zip*='+userZip+'].
而不是'.contentBlock[data-zip*='+userZip+''].
。在IE版本9-11中测试(JSFIDLE在IE8中工作不好)
'[data zip*='+userZip+']“
顺便说一句,它也会起作用。@Oriol如果是真的,那么答案表明一个1000万字符的属性在IE7中可以工作,这是没有意义的。OP使用的长度<5000它不是重复的,在该线程中提到,即使是1000万字符的字符串长度在IE7中也可以正常工作,我的字符串长度gth明显低于该值(约5000)。在IE(9-11)中试用,该属性可用于css伪类。与html/js相比,它似乎与css选择器更相关。使用getAttribute
检索属性没有问题,但该属性选择器在样式表或文档中都不起作用。querySelector
。您应该确定这是否与此有关一般来说,使用jQuery或JavaScript,只需使用HTML和CSS构建一个测试用例,并将该用例包含在问题中。正如@Oriot所说,这似乎是IE中CSS选择器的一个问题。按照目前的公式,未来有类似问题的访问者很难找到该问题。答对了!非常感谢!