jquery在ajax $ .get调用中选择并更新头节点

时间:2010-02-15 12:16:01

标签: jquery

我想要实现一个非常简单的任务,用一个调用ajax调用的页面的头节点替换页面的头节点。

我这样做:

        url = 'http://myurl';                    
        $.get(url, function(results){
          var head = $('head', results);

          $('head', results).each (
             function() {
                 alert("got a match ");
             });


          var form = $("form.ajax_form_result", results);
          //update the ajax_form_result div with the return value "form"
          $('head').html(head);
          $('#ajax_form_result').html(form);
        }, "html");

表单更新工作没有问题,但头更新不起作用。 $(“头”,结果);不返回节点,导致新文档中出现空头。

3 个答案:

答案 0 :(得分:1)

尝试:$("head", $(results));

“results”应该只是html格式的文本块。 “$(result)”应该是在DOM对象中转换的块。

答案 1 :(得分:0)

这对我很有用:

var feed = http://www.feed.com/page.html;

jQuery.get('http://yourdomain.com/proxy.php?url='+feed+'', function(html){
    if (html == '') {
        alert('Invalid URL');
        return false;
    } 

    html = html.replace( /<(\/?)(html|head|body)([^>]*)>/ig, function(a,b,c,d){
        return '<' + b + 'div' + ( b ? '' : ' data-element="' + c + '"' ) + d + '>';
    });

    RSSlink = jQuery(html).find('[data-element=head]').find('link[type="application/rss+xml"]').eq(0).attr('href');

});

它应该能够做你需要做的事情!

答案 2 :(得分:0)

我已经为我的问题实施了这个解决方案:

var myUrl="http://urlExampleSubstituteWithYour"
$.get( url, function( data ) {
    // Get the string index of the content of the start head tag
    var startHead=(data.toString().indexOf("<head>"))+6;
    // Get the string index of the finish head tag
    var stopHead=data.toString().indexOf("</head>");
    // Create a string of the head content of the myUrl page
    var head=data.substring(startHead+6,stopHead);
    // Apply HTML to my block...
    $("#idOfMyBlock").html(head);
});

这个解决方案(也许不是最好的)救了我! 抱歉我的英文!