据我了解,数据属性的长度没有限制(如果我错了,请纠正我)。然而,当我有一个包含很多字符的数据属性时,IE 中会出现一些奇怪的情况。基本上,如果数据属性 data-zip
包含用户输入的特定 zip,我想使用 jQuery 来显示特定的 div。
在 FireFox、Chrome 和 Safari 中一切都工作得很好,但我注意到我无法在我尝试过的任何版本的 IE 中使用它(2010 年 8 月 9 日)。我开始制作一个 JSFiddle,在数据属性中添加的邮政编码明显减少,因此我可以在这里发帖,但那时我意识到只要保留数据属性中的字符数,我的 Fiddle 在 IE 中就可以正常工作短。
我还注意到,如果我将所有邮政编码输入到 JSFiddle 上的数据属性中,JSFiddle 会认为代码格式不正确(尽管代码在现代浏览器中仍然按预期工作,因此这可能无关紧要)。
我在 IE 中使用 F12 开发人员工具来检查元素,并注意到当我输入所有邮政编码时,似乎没有一个邮政编码实际上在 IE 中被解析,如下所示:
这可能可以解释为什么我的代码在 IE 中无法正常工作(因为 data-zip
属性显示为空)。有谁知道这是怎么回事以及我该如何纠正这种情况?
Here is a JSFiddle ,第一个元素具有我可以放入数据属性中的最大字符数,在 JSFiddle 中,在语法突出显示被丢弃之前,第二个元素显示突出显示异常。在我尝试过的任何版本的 IE 中,这两者都无法正确解析,但在现代浏览器中,它可以按预期工作。
最佳答案
您必须删除选择器中的 "
才能使其在 IE 中正常工作:
所以 '.contentBlock[data-zip*='+ userZip +']'
而不是 '.contentBlock[data-zip*="'+ userZip +'"]'
。在 IE 版本 9-11 中测试(jsFiddle 在 IE8 中运行不佳)。
'[data-zip*='+ userZip +']'
也可以工作。
关于javascript - IE 中数据属性长度的限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26392887/