• jQuery:ajax处理html页面


    源码:

      $.ajax({
                    url: url,
                    success: function (data) {
                        var reg = /<body>[sS]*</body>/g;
                        var html = reg.exec(data)[0];
                        html = $(html).filter(".body_main").html();
                        var title = $(html).filter("h2").html();
                        $("#body_main").find("h2").html(title);
    
                        var content = $(html).filter(".main_content").html();
                        $(content).prependTo("#dvFirst");
                        $("#dvFirst>div:gt(4)").remove();
                    }
                });

    注意点:

    1.ajax传输过来的data中有换行符,正则表达式的时候需要注意,不能用.*,必须用[sS]*

    2.在含有<html>   </html>的字符串时,jquery不能够将字符串转化成Dom对象,需要去除html,body可以

    3.在字符串转换成Dom对象后用find来查询时发现查不到,必须使用filter,具体的原因还不清楚。

    find()获得当前元素匹配集合中每个元素的后代(子元素),选择性筛选的选择器(会在当前指定元素中查找符合条件的子元素,是对它的子集操作);
    
    filter()则是在当前指定的元素集合中查找符合条件的元素,是对自身集合元素进行筛选。

    例子:

    body:

      var str = "<body><div>hongda</div><div>hongda2</div><div>hongda3</div><div>hongda4</div></body>";
                var html = $(str).find("div").first().html();
                console.log(html);  //null
     var str = "<body><div>hongda</div><div>hongda2</div><div>hongda3</div><div>hongda4</div></body>";
                var html = $(str).filter("div").first().html();
                console.log(html); //hongda

    div:

      var str = "<div><div>hongda</div><div>hongda2</div><div>hongda3</div><div>hongda4</div></div>";
                var html = $(str).find("div").first().html();
                console.log(html);   //hongda
      var str = "<div><div>hongda</div><div>hongda2</div><div>hongda3</div><div>hongda4</div></div>";
                var html = $(str).filter("div").first().html();
                console.log(html);   //<div>hongda</div><div>hongda2</div><div>hongda3</div><div>hongda4</div>
  • 相关阅读:
    jchdl
    jchdl
    UVa 10256 (判断两个凸包相离) The Great Divide
    UVa 11168 (凸包+点到直线距离) Airport
    LA 2572 (求可见圆盘的数量) Kanazawa
    UVa 10652 (简单凸包) Board Wrapping
    UVa 12304 (6个二维几何问题合集) 2D Geometry 110 in 1!
    UVa 10674 (求两圆公切线) Tangents
    UVa 11796 Dog Distance
    LA 3263 (平面图的欧拉定理) That Nice Euler Circuit
  • 原文地址:https://www.cnblogs.com/hongdada/p/3482192.html
Copyright © 2020-2023  润新知