对应的HTML页面程序的代码如下所示。在该程序中除了与Ajax相关的程序基本框架之外,读者需要特别关注一下使用DOM操作HTML文档中对应元素的方法。

源程序名称:main.htm

<html>

<head>

<title>shopping online</title>

<meta http-equiv="content-type" content="text/html; charset=gb2312">

<link href="images/css.css" type="text/css" rel="stylesheet">

</head>

<script type="text/javascript">

var datadiv;

var datatablebody;

var curelement;

var xmlhttpreq = false;

//创建xmlhttprequest对象

function createxmlhttprequest() {

if(window.xmlhttprequest) { //mozilla 浏览器

xmlhttpreq = new xmlhttprequest();

}

else if (window.activexobject) { // IE浏览器

try {

xmlhttpreq = new activexobject("msxml2.xmlhttp");

} catch (e) {

try {

xmlhttpreq = new activexobject("microsoft.xmlhttp");

} catch (e) {}

}

}

}

//发送请求函数

function getdetail(element) {

datatablebody = document.getelementbyid("databody");

datadiv = document.getelementbyid("popup");

createxmlhttprequest();

curelement = element;

var url = "tipservlet?key=" + escape(element.id);

xmlhttpreq.open("get", url, true);

xmlhttpreq.onreadystatechange = processresponse;//指定响应函数

xmlhttpreq.send(null);  // 发送请求

}

// 处理返回信息函数

function processresponse() {

if (xmlhttpreq.readystate == 4) { // 判断对象状态

if (xmlhttpreq.status == 200) { // 信息已经成功返回,开始处理信息

setdata(xmlhttpreq.responsexml);

} else { //页面不正常

window.alert("您所请求的页面有异常。");

}

}

}

// 显示提示框

function setdata(data) {           

         cleardata();

         setoffsets();

         var content = data.getelementsbytagname("content")[0].firstchild.data;

         var row = createrow(content);           

         datatablebody.appendchild(row);

    }

//生成表格内容行

    function createrow(data) {           

       var row, cell, txtnode;

       row = document.createelement("tr");

       cell = document.createelement("td");

       cell.setattribute("bgcolor", "#fffafa");

       cell.setattribute("border", "0");                          

       txtnode = document.createtextnode(data);

       cell.appendchild(txtnode);

       row.appendchild(cell);

       return row; 

    }

    //设置显示位置               

    function setoffsets() {

       datadiv.style.border = "black 1px solid";

       var top = 0;

       while(curelement) {

          top += curelement["offsettop"];

          curelement = curelement.offsetparent;

       }

       datadiv.style.left = 50 + "px";

       datadiv.style.top = top + "px";

   }

 

    // 清除提示框

    function cleardata() {           

       var ind = datatablebody.childnodes.length;           

       for (var i = ind - 1; i >= 0 ; i--) {

             datatablebody.removechild(datatablebody.childnodes[i]);      

       }

       datadiv.style.border = "none";

     }

</script>

    <body leftmargin="0" topmargin="0">

         <table cellspacing="0" cellpadding="0" width="778" align="center" border="0">

               <tbody>

                     <tr>

                           <td height="10"></td>

                     </tr>

                  </tbody>

            </table>

            <table height="148" cellspacing="0" cellpadding="0" width="778" align="center" border="0">

                  <tbody>

                        <tr valign="top">

                              <td width="236">

                                    <table width="375" height="340">

                                          <!--dwlayouttable-->

                                          <tbody>

                                                <tr>

                                                       <td width="348" height="1">

                                                       </td>

                                                       <td height="1" width="29"></td>

                                                </tr>

                                                <tr>

                                                       <td height="13" width="348">

                                                       <table id="autonumber1" style="border- collapse: collapse" bordercolor="#111111" height="20" cellspacing="0" cellpadding="0" width="151" background="images/fu.gif" border="0">

                                                             <tbody>

                                                                   <tr>

                                                                        <td align="center" width="82">

                                                                              <b>精品推荐</b>

                                                                        </td>

                                                                        <td align="center">

                                                                        </td>

                                                                   </tr>

                                                             </tbody>

                                                       </table>

                                                </td>

                                                <td height="13" width="29">

                                                </td>

                                          </tr>

                                          <tr>

                                                <td valign="top" height="328" width="348">

                                                      <table cellspacing="0" cellpadding="0" width="103%" border="0">

                                                             <tbody>

                                                                   <tr>

                                                                        <td width="50%">

                                                                              <img id="1" onm- ouseover="getdetail(this);" οnmοuseοut="cleardata();" src="data:images/ibmt43bb4.jpg" vspace="6" border="0" alt="">

                                                                              <a><b>

                                                                              <br>

                                                                        </td>

                                                                        <td width="50%">

                                                                              <br>

                                                                              商品名称:
                                                                              ibm-t43bb

                                                                              <br>

                                                                              会员价:2500元

                                                                              <br>

                                                                        </td>

                                                                   </tr>

                                                                   <tr>

                                                                        <td width="50%">

                                                                              <img id="2" onm- ouseover="getdetail(this);" οnmοuseοut="cleardata();" src="data:images/hpnc4200.jpg" vspace="6" border="0" alt="">

                                                                        </td>

                                                                        <td width="50%">

                                                                              <br>

                                                                              商品名称:
                                                                              
hp-nc4200

                                                                              <br>

                                                                              <br>

                                                                              会员价: 1150元

                                                                              <br>

                                                                        </td>

                                                                   </tr>

                                                                   ……

<tr>

<td valign="top" colspan="4" height="16" width="776">

</td>

</tr>

</tbody>

</table>

<div style="position:absolute;" id="popup">

<table bgcolor="#fffafa" border="0" cellspacing="2" cellpadding="2" />

<tbody id="databody">

</tbody>

</table>

</div>

</body>

</html>

转载于:https://www.cnblogs.com/zhengxi/archive/2010/06/10/1755285.html

Ajax(3)--DOM操作HTML 你忘记了吗?相关推荐

  1. MV* 框架 与 DOM操作为主 JS库 的案例对比

    最近分别使用 Zepto 和 Avalon框架写了个 SPA项目,贴出来讨论下 JS DOM操作为主 JS库 与 MV* 框架的对比 案例(MV* 框架 与 DOM操作 JS库 实例对比) 购物车页面 ...

  2. java与jquery的选择器区别_java day44【JQuery 基础:概念,快速入门,JQuery对象和JS对象区别与转换,选择器,DOM操作,案例】...

    第一章JQuery 基础 1. 概念: 一个JavaScript框架.简化JS开发 * jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScrip ...

  3. jQuery的DOM操作

    jQuery的DOM操作 前期:http://blog.csdn.net/goodshot/article/details/20202019 1 , 创建元素节点 传统的javascript方法,创建 ...

  4. ajax与DOM的使用,AJAX和DOM的运行经验

    AJAX和DOM的运行经验 更新时间:2007年03月07日 00:00:00   作者: 被AJAX中DOM的操作郁闷了好几天,今天总算搞明白了,自学就是苦啊,苦的一把鼻涕一把泪的, 把教训些出来, ...

  5. DOM操作 append prependTo after before

    通过JavaScript可以很方便的获取DOM节点,从而进行一系列的DOM操作.但实际上一般开发者都习惯性的先定义好HTML结构,但这样就非常不灵活了. 试想下这样的情况:如果我们通过AJAX获取到数 ...

  6. JavaScript和jQuery的DOM操作

    1.创建元素节点 传统的javascript方法,创建元素节点 程序代码 var a  = document.createElement("p"); jQuery中创建节点的方法是 ...

  7. Django的Ajax加额外操作

    ---恢复内容开始--- choice参数 这个参数能够帮我们在数据库中存储数字,然后取出的时候,可以将其转换成相对应的字符,为什么这样呢,因为数字的存储所占的空间远小于字符的,这样能够节省资源. 用 ...

  8. java day44【JQuery 基础:概念,快速入门,JQuery对象和JS对象区别与转换,选择器,DOM操作,案例】...

    第一章  JQuery 基础 1. 概念: 一个JavaScript框架.简化JS开发 * jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScr ...

  9. day05【JQuery框架】HTML引入Jquery、jQuery与JS区别、基本选择器、层级关系选择器、属性选择器、过滤选择器、 对象遍历、Jquery的DOM操作【重点】、Jquery事件绑定

    回顾 1. bom对象window对象三种弹框alert()confirm()prompt()二种定时器一次性:setTimout() --- 通过递归实现循环性循环性:setInterval()lo ...

最新文章

  1. python中__name__属性的取值_Python脚本的“__name__”属性
  2. python画仿真图-仿真入门:几行 Python 代码实现复杂社会动力学
  3. 交通运输部:春节期间小客车免收高速通行费
  4. 计算机社团竞选优势6,社团社长竞选稿六篇
  5. shell linux教程,Shell入门基础知识
  6. 前端与java绘制三维图_使用HTML5 Canvas绘制三维波浪图算法和实现
  7. php foreach 引用注意
  8. 两个分数化简比怎么化_怎么化行最简形矩阵?
  9. anaconda + pycharm安装教程补充
  10. vscode安装vetur不高亮解决
  11. JAVA反射机制、Class类及动态加载、成员变量构造方法其他方法的反射与调用、代理模式AOP
  12. 忙了1天的qte-arm环境的搭建
  13. 模拟退火算法求解最优化问题
  14. wind python接口手册_接口手册 · wind- Client API 帮助中心 · 看云
  15. 前端程序员专用的在线工具箱
  16. 入门STM32--怎么学习STM32
  17. web结课作业的源码 HTML5+CSS大作业——个人博客-功能齐全(48页) html大学生网站开发实践作业
  18. Java小程序 个人缴税
  19. 微软:拿番茄花园开刀与反垄断无关
  20. 微课--Python使用UDP协议实现局域网内屏幕广播(40分钟)

热门文章

  1. linux中more cmd.txt,cmd.txt · 究极贾露露/linux-file - Gitee.com
  2. Google认证测试:CTS,CTS on GSI,VTS
  3. Java web实验购物网站(IDEA开发环境,JavaScript,JSP,Servlet,jQuery,Ajax,MySql等)——实现购物车
  4. 360站长平台关闭官网认证入口
  5. docker 搭建禅道
  6. HDU - 4966 GGS-DDU (最小树形图)
  7. 发光二极管(LED)的导通电压
  8. 百度OCR识别表格文字,并自动下载到本地(准确率很高)
  9. 腾讯35级员工高调离职,真实工资被曝光,牛逼的人果然都很会赚钱!
  10. 英语翻译题目——17