$(function(){
    $('<iframe id="test" src="test.html"></iframe>').appendTo('body');   //动态创建的
    });
我的问题是:怎么拿到test.html  的BODY
$('body', document.frames('test')[0].document).html();
这样既然拿不到,哪位兄弟有好的办法啊?

解决方案 »

  1.   

    动态创建的也可以看到的
    $("body #test").html()
      

  2.   

    楼主的$('body', document.frames('test')[0].document).html();这句代码有问题
    对选择器的理解有问题
    LS的答案已经给出了。
    但是LZ把jQuery对象和js DOM对象混淆了
    同时也把选择器写法弄错了。
    希望楼主多看看jQuery
      

  3.   

    jQuery对象和js DOM对象的区别:
      $("#id") =>得到的是jQuery对象,他可以使用jQuery的方法,但是不能使用js dom对象的函数
      document.getElementById("id")=>得到的是js dom对象,他可以使用js dom对象的函数,但是不能直接使用jQuery方法那么怎么办呢,很简单 $("#id").get(0) == js dom
    $(jsdom)就成了jQuery对象了第二个是选择器写法的问题
    $()里面的都是套在一个引号里,其中的包含的必须是jQuery的里面的选择器规则写法
      

  4.   

    我也只是获取到了这个对象。
    LZ说的是要iframe页面 <body>的内容。
      

  5.   


    是啊,就是获取不到,呵呵,,写在页面里的iframe是可以拿到的,动态写到页面的就拿不到了
      

  6.   

    今天研究了一下。
    发现因为各浏览器对document解释不同。function getIframeBody(iframeID)
    {
    var doc;
    if (document.all){//IE
    doc = $("#"+iframeID).contents();
    }
    else if(window.navigator.userAgent.indexOf("Chrome") !== -1 ){
    alert("is chrome!");
    }
    else{//Firefox
    doc = $("#"+iframeID).attr("contentDocument");;
    }
    alert($(doc).contents().find("body").html());
    } 暂支持ff,ie.