从jQuery + AJAX请求中选择IE8时返回NULL

时间:2010-10-29 19:52:10

标签: javascript jquery html ajax internet-explorer

我不知道为什么会这样。首先,代码通过W3C验证器作为HTML5 EXCEPT有效,用于URL编码问题(例如&应该是& amp;),但我无法控制,并且不应该导致此错误。

其次,这适用于所有其他浏览器。

第三,您将在下面的JS中看到的“data”元素返回所请求页面中的HTML。

$('.calendarWrap .dayEvents li:not(.prevMonth) a').click(function(e){
            the_url = $(this).attr('href');
            $.get($(this).attr('href'),function(data){
                $('#calendar-bubble').remove();
                $('body').prepend('<div style="display:none;left:'+(e.pageX)+'px;top:'+e.pageY+'px;" id="calendar-bubble">'+$('#main-content',data).html()+'<p class="details"><a href="'+the_url+'">View event details &gt;</a></p></div>').find('#calendar-bubble').fadeIn(150);
                $cb = $('#calendar-bubble');
                if($(window).width()-($cb.outerWidth()+$cb.offset().left) < 0){
                    $cb.css({left:(e.pageX-$cb.outerWidth())+'px'});
                }
                if($(window).height()-($cb.outerHeight()+$cb.offset().top-$(window).scrollTop()) < 0){
                    $cb.css({top:(e.pageY-$cb.outerHeight())+'px'});
                }
            });
            return false;
        });

最后,这是所请求页面的HTML: http://pastebin.com/DZE79xiA

我没有想法......

有没有人知道任何其他方法来获取这样的数据并通过它解析并只抓取#main-content?

2 个答案:

答案 0 :(得分:1)

最后,经过大约一周的战斗,我发现这是因为HTML5元素。我最终不得不使用:http://jdbartlett.github.com/innershiv/并且之后都工作了。

答案 1 :(得分:0)

你粘贴的内容似乎是正确的。如果我理解你的问题,你可以尝试

var content = $(data).find('#main-content')

而不是

$('#main-content',data)