原生js解析HTM文件,txt文件

ajax/ajax1.js

window.onload = function() {
    //1.给第一个a标签添加onclick函数
    document.getElementsByTagName('a')[0].onclick = function() {
        // 2.创建一个XMLHttpRequest对象
        var xmlHttp = null;

        if (window.XMLHttpRequest) {
        //IE6以上,google,火狐支持
            xmlHttp = new XMLHttpRequest();
        } else {
            //支持IE5及以下
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        //3.准备发送的数据url:

        var url = this.href+"?time="+new Date() ;//时间戳
        var method = "post" ;//post方式提交
        //4.调用XMLHttpRequest对象open方法
        xmlHttp.open(method,url) ;
        //post
        xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); ;
        //5.调用XMLHttpRequest对象的方法
        xmlHttp.send("name='sdfs'") ;
        //6.XMLHttRequest对象添加onreadystatechange响应函数
        xmlHttp.onreadystatechange = function(){
            alert(xmlHttp.readyState) ;
           if(xmlHttp.readyState==4){//xmlHttp.readyState为4时响应完成
              if(xmlHttp.status == 200){//响应是否可用
                document.getElementsByTagName('a')[0].innerHTML
               = xmlHttp.responseText ;//响应结果

              }
           }
        }
        //取消a节点onclick默认行为
        return false ;
    }   
}

text/ajax1.html

<a href="aaa.html">hello world</a>

ajax1.jsp

<script type="text/javascript" src="ajax/ajax1.js" charset="UTF-8"></script>
</head>
<body>
    <a href="text/ajax1.html">ajax1</a>
</body>

显示效果

<a href="text/ajax1.html"><a href="aaa.html">hello world</a></a>

jquery解析HTML文件,txt文件

ajax_jqurey/ajax-html-jquery.js

$(function(){
   $('a').click(function(){
     var url  = this.href+" a" ;//当前路径下 并且选择a标签
     var args = {"time":new Date()} ;//时间戳 (JSON格式)
     $("#h3").load(url,args) ;//load 将内容直接加入到 id = h3 下
     return false ;//取消a标签的默认行为
   });
 })

ajax-html-jquery.jsp

<a href="text/ajax-html-jquery.html">ajax-html-jquery</a>
    <a href="text/ajax-html-jquery2.html">ajax-html-jquery2</a>
    <h3 id="h3"></h3>

text/ajax-html-jquery.html

<h2><a href="#">我是a</a></h2>
<span>sdadjk</span>
<a>ppp</a>

原生js解析xml

ajax/ajax2.js

window.onload = function() {
    var aNodes = document.getElementsByTagName('a');//所有的a标签
    for (i = 0; i < aNodes.length; i++) {
        aNodes[i].onclick = function() {//为每一个a标签添加onclick事件
            var request = new XMLHttpRequest();//创建一个XMLHttpRequest对象
            var method = "GET";//提交方式
            var url = this.href + "?time=" + new Date();//时间戳
            request.open(method,url);//调用open()方法
            request.send(null);//调用send()方法
            request.onreadystatechange = function() {//添加onreadystatechange方法 该方法在readyState每次修改都会调用
                alert(request.readyState);//弹出当前的readyState值
                if (request.readyState == 4) {//响应完成
                    if (request.status == 200 || request.status == 304) {//响应可用 
                        var xml = request.responseXML;//接收 回应的xml格式文本
                        //解析xml
                        var name = xml.getElementsByTagName('name')[0].firstChild.nodeValue;//得到xml文本 标签名为name的第一个节点 的子节点 的文本值
                        var age = xml.getElementsByTagName('age')[0].firstChild.nodeValue;
                        var garde = xml.getElementsByTagName('garde')[0].firstChild.nodeValue;
                        var specialty = xml.getElementsByTagName('specialty')[0].firstChild.nodeValue;

                        // alert(name);//弹出内容
                        // alert(age);
                        // alert(garde);
                        // alert(specialty);

                        var ul = document.createElement('ul');//创建一个UL节点
                        var li1 = document.createElement('li');//创建一个li节点
                        var li2 = document.createElement('li');
                        var li3 = document.createElement('li');
                        var li4 = document.createElement('li');
                        li1.appendChild(document.createTextNode(name));创建一个文本节点 并将name的值添加到该文本节点中 并将该文本节点加入到li1下
                        li2.appendChild(document.createTextNode(age));
                        li3.appendChild(document.createTextNode(garde));
                        li4.appendChild(document.createTextNode(specialty));
                        var div1 = document.getElementById('div1');//获取di=div1的节点
                        div1.innerHTML = "";//将div内容清除
                        ul.appendChild(li1);//将li加入到ul下
                        ul.appendChild(li2);
                        ul.appendChild(li3);
                        ul.appendChild(li4);
                        div1.appendChild(ul);将ul加入到div1下

                    }
                }
            }
            return false;//取消a的 onclick默认行为
        }
    }
}

ajax2.jsp

 <a href="text/1.xml">xml解析1</a> <a href="text/2.xml">xml解析2</a> <div id="div1"></div>

text/1.xml

<?xml version="1.0" encoding="UTF-8"?>
<person>
    <name>乐乐</name>
    <age>20</age>
    <garde></garde>
    <specialty>音乐</specialty>
</person>

text/2.xml

<?xml version="1.0" encoding="UTF-8"?>
<person>
    <name>八戒</name>
    <age>10</age>
    <garde></garde>
    <specialty>结界</specialty>
</person>

jquery解析xml
ajax_jqurey/ajax-xml-jquery.js

$(function(){
   $('a').click(function(){
     var url  = this.href ;
     var args = {"time":new Date()} ;
     //post将get改为post即可
     //function:回掉函数 当响应结束时被触发 响应结果在data中
     $.get(url,args,function(data){
       var name = $(data).find("name").text() ;//将data包装成一个jqurery对象 调用find() 再调用text()获取name下的文本值
       var age = $(data).find("age").text() ;
       var garde = $(data).find("garde").text() ;
       var specialty = $(data).find("specialty").text() ;
       $("#h3").empty().append(""+name+"<a href='"+garde+".html'>"+garde+"</a>").append("age:"+age+"").append(""+specialty+"") ;

     }) ;
     return false ;
   });
 })

ajax2.jsp

<a href="text/1.xml">xml解析1</a>
  <a href="text/2.xml">xml解析2</a>
  <div id="div1"></div>

text/1.xml

<?xml version="1.0" encoding="UTF-8"?>
<person>
    <name>乐乐</name>
    <age>20</age>
    <garde></garde>
    <specialty>音乐</specialty>
</person>

text/2.xml

<?xml version="1.0" encoding="UTF-8"?>
<person>
    <name>八戒</name>
    <age>10</age>
    <garde></garde>
    <specialty>结界</specialty>
</person>

原生js解析json
ajax/json.js

window.onload = function() {
    var aNodes = document.getElementsByTagName('a');
    for (var i = 0; i < aNodes.length; i++) {
        aNodes[i].onclick = function() {

            var xmlHttp = new XMLHttpRequest();

            var method = "GET";
            var url = this.href + "?time=" + new Date();

            xmlHttp.open(method,url);

            xmlHttp.send(null);

            xmlHttp.onreadystatechange = function() {
                alert(xmlHttp.readyState);
                if (xmlHttp.readyState == 4) {
                    if (xmlHttp.status == 200) {
                        alert(0) ;
                        var jsonObject = xmlHttp.responseText;//用responseText
                        var jsonText = eval("(" + jsonObject + ")");//转换为json对象
                        var name = jsonText.person.name;
                        var age = jsonText.person.age ;
                        var garde = jsonText.person.garde;
                        var specialty = jsonText.person.specialty;

                        var ul = document.createElement('ul');
                        var li1 = document.createElement('li');
                        var li2 = document.createElement('li');
                        var li3 = document.createElement('li');
                        var li4 = document.createElement('li');
                        li1.appendChild(document.createTextNode(name));
                        li2.appendChild(document.createTextNode(age));
                        li3.appendChild(document.createTextNode(garde));
                        li4.appendChild(document.createTextNode(specialty));
                        var div1 = document.getElementById('div1');
                        div1.innerHTML = "";
                        ul.appendChild(li1);
                        ul.appendChild(li2);
                        ul.appendChild(li3);
                        ul.appendChild(li4);
                        div1.appendChild(ul);

                    }
                }
            }
            return false;
        }
    }

}

text/json1.json

{"person":{
        "name":"无先","age":10,"garde":"差","specialty" :"吉他"   
        }   
}
text/json2.txt
{"person":{
        "name":"丽丽","age":16,"garde":"高","specialty":"音乐"    
        }   
}

json.jsp

<a href="text/json1.json">json1.json</a>
  <a href="text/json2.txt">json.txt</a>
  <div id="div1"></div>

jquery解析json

ajax_jqurey/ajax-json-jquery.js

$(function(){
   $('a').click(function(){
     var url  = this.href ;
     var args = {"time":new Date()} ;
     //post将get改为post即可
     //function:回掉函数 当响应结束时被触发 响应结果在data中
     $.getJSON(url,function(data){//返回的data直接就是一个json对象
       var name = data.person.name ;
       var age = data.person.age ;
       var garde =data.person.garde ;
       var specialty = data.person.specialty ;
       $("#h3").empty().append(""+name+"<a href='"+garde+".html'>"+garde+"</a>").append("age:"+age+"").append(""+specialty+"") ;

     }) ;//如果用get不用getJson此处写为},"JSON") ; 同样是可以的
     return false ;
   });
 })

text/json1.json

{"person":{ "name":"无先","age":10,"garde":"差","specialty" :"吉他" } }

text/json2.txt

{"person":{ "name":"丽丽","age":16,"garde":"高" ,"specialty":"音乐" } }

json.jsp

<a href="text/json1.json">json1.json</a>
  <a href="text/json2.txt">json.txt</a>
  <div id="div1"></div>

AJAX 原生js以及Jquery解析html,xml,txt,json格式文本的更多相关文章

  1. html5 拖拽及用 js 实现拖拽功能的示例代码

    这篇文章主要介绍了html5 拖拽及用 js 实现拖拽,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. amaze ui 的使用详细教程

    这篇文章主要介绍了amaze ui 的使用详细教程,本文通过多种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  4. xcode – Cordova plugin.xml添加“Header Search Paths”条目

    我希望将Cordova插件添加到Xcode项目后,在“HeaderSearchPaths”下添加一个新条目.如何在Cordovaplugin.xml文件中进行配置?

  5. ios – 有关多个连接/提要/视图的XML解析的设计/实现建议

    >我应该在每个视图中都有解析器类/对象或解析XML提要吗?

  6. iOS的相当于Android的colors.xml的是什么?

    如果没有,组织整个应用程序使用的颜色的最佳方法是什么?

  7. iOS中的XML转换为JSON

    我需要将XML响应转换为JSON.我的XML响应:我正在使用本网站的XMLReader支持文件:XMLReader我正在使用此代码将XML转换为JSON我收到了JSON响应:我需要这样的回应:我在线转换时得到这个回应.如何获得这样的回应提前致谢.解决方法此代码不会将任何内容转换为JSON.它给你一个NSDictionary.您需要从字典中实际创建JSON数据.尝试这个大小.

  8. 在IOS9中的Cordova应用程序使用JQuery / Javascript的window.history问题

    在两个测试用例中唯一改变的是Cordova.js.解决方法我看到这是几个星期前,但我会发布这个,以防其他人遇到它.听起来它可能与iOS9中的哈希更改生成的导航事件有关.如果是这样,可以将其添加到index.html以禁用哈希侦听:

  9. ios – Info.plist格式不正确

    解决方法plist文件是严格指定格式的XML文档;XML和PropertyList结构都有非常严格的规则.如果您尝试手动编辑info.plist(即文本),您可以轻松搞砸事情,方法是打开Asas>源代码:您不太可能正确使用此格式.因此,您应该始终使用OpenAs>编辑info.plist.物业清单:这允许属性列表编辑器为您生成XML,并且不太可能在生成的XML结构中出错.当然,我想你仍然可能搞砸某些东西的价值……

  10. ios – 在没有XML的情况下更新sqlite数据库

    我的应用程序需要来自sqlite数据库的数据.它将附带此数据库的一个版本,但我需要定期更新它(很可能每月一次).通常情况下,我一直在通过我设置的一堆网络服务将我的应用程序的其他部分的更新作为XML发送,但我现在正在处理的这个特定数据库非常大(大约20-30MB),而且我当我尝试以这种方式发送时出现超时错误.我尝试将数据库放在我的公司服务器上,然后将其下载到NSData对象中.然后我将该数据对象保存

随机推荐

  1. xe-ajax-mock 前端虚拟服务

    最新版本见Github,点击查看历史版本基于XEAjax扩展的Mock虚拟服务插件;对于前后端分离的开发模式,ajax+mock使前端不再依赖后端接口开发效率更高。CDN使用script方式安装,XEAjaxMock会定义为全局变量生产环境请使用xe-ajax-mock.min.js,更小的压缩版本,可以带来更快的速度体验。

  2. vue 使用 xe-ajax

    安装完成后自动挂载在vue实例this.$ajaxCDN安装使用script方式安装,VXEAjax会定义为全局变量生产环境请使用vxe-ajax.min.js,更小的压缩版本,可以带来更快的速度体验。cdnjs获取最新版本点击浏览已发布的所有npm包源码unpkg获取最新版本点击浏览已发布的所有npm包源码AMD安装require.js安装示例ES6Module安装通过Vue.use()来全局安装示例./Home.vue

  3. AJAX POST数据中文乱码解决

    前端使用encodeURI进行编码后台java.net.URLDecoder进行解码编解码工具

  4. Koa2框架利用CORS完成跨域ajax请求

    实现跨域ajax请求的方式有很多,其中一个是利用CORS,而这个方法关键是在服务器端进行配置。本文仅对能够完成正常跨域ajax响应的,最基本的配置进行说明。这样OPTIONS请求就能够通过了。至此为止,相当于仅仅完成了预检,还没发送真正的请求呢。

  5. form提交时,ajax上传文件并更新到&lt;input&gt;中的value字段

  6. ajax的cache作用

    filePath="+escape;},error:{alert;}});解决方案:1.加cache:false2.url加随机数正常代码:网上高人解读:cache的作用就是第一次请求完毕之后,如果再次去请求,可以直接从缓存里面读取而不是再到服务器端读取。

  7. 浅谈ajax上传文件属性contentType = false

    默认值为contentType="application/x-www-form-urlencoded".在默认情况下,内容编码类型满足大多数情况。在这里,我们主要谈谈contentType=false.在使用ajax上传文件时:在其中先封装了一个formData对象,然后使用post方法将文件传给服务器。说到这,我们发现在JQueryajax()方法中我们使contentType=false,这不是冲突了吗?这就是因为当我们在form标签中设置了enctype=“multipart/form-data”,

  8. 909422229_ajaxFileUpload上传文件

    ajaxFileUpload.js很多同名的,因为做出来一个很容易。我上github搜AjaxFileUpload出来很多类似js。ajaxFileUpload是一个异步上传文件的jQuery插件传一个不知道什么版本的上来,以后不用到处找了。语法:$.ajaxFileUploadoptions参数说明:1、url上传处理程序地址。2,fileElementId需要上传的文件域的ID,即的ID。3,secureuri是否启用安全提交,默认为false。4,dataType服务器返回的数据类型。6,error

  9. AJAX-Cache:一款好用的Ajax缓存插件

    原文链接AJAX-Cache是什么Ajax是前端开发必不可少的数据获取手段,在频繁的异步请求业务中,我们往往需要利用“缓存”提升界面响应速度,减少网络资源占用。AJAX-Cache是一款jQuery缓存插件,可以为$.ajax()方法扩展缓存功能。

  10. jsf – Ajax update/render在已渲染属性的组件上不起作用

    我试图ajax更新一个有条件渲染的组件。我可以确保#{user}实际上是可用的。这是怎么引起的,我该如何解决呢?必须始终在ajax可以重新呈现之前呈现组件。Ajax正在使用JavaScriptdocument.getElementById()来查找需要更新的组件。但是如果JSF没有将组件放在第一位,那么JavaScript找不到要更新的内容。解决方案是简单地引用总是渲染的父组件。

返回
顶部