因为jq只有个parseJSON,没有stringify,而在ie7下是没有支持原生window.JSON的,那么最好的选择是老道的json.js来和jq搭配了
<script src='jquery.js'></script>
<script src='json.js'></script>
<div class='a'>nick</div>
<script>
$(function(){
alert($(".a").html())
})
</script>
额,看上去灰常的完美哇,运行下看看,
..........................................................
啊,不勒个是吧,控制台抛出error 该对象不支持该属性,why?
好吧,可以断点调试下,哦,我的ie7是在ie8下选择的ie7的浏览器模式,ie8带有开发者工具的
调试发现在jquery1.7.1的第4098行处
if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
这个 exec 已经 被 置为了 underfined 了 ,, 于是 报错。
但是,看整个代码,除开有而外的加了个json.js 其他的 ,都简单的不能在简单的demo了。那么如果有问题,应该就是
json.js加载后 在 这个特定的浏览器环境下 和 jq.js冲突来吧。
那么换下先后顺序 先加载json.js 然后加载 jquery.js
继续运行,ok了。
那么看来,在 ie7下,至少在 ie8的ie7模式下,先加载jq在加载 json.js 是 会有些问题的
ps:在先加载jq后加载json.js的情况下,如果用id选择器和node选择器 都是 没问题的。单色 选择器中如果有
带. 的 类选择器才有会这样的情况存在,也就是说 会导致类选择器失灵。