`
AvengerBevis
  • 浏览: 42143 次
  • 性别: Icon_minigender_1
  • 来自: Beijing
社区版块
存档分类

使用DOM技术操纵文档

dom 
阅读更多
java 代码
 
  1. [资料]JS使用DOM技术操纵文档 -- 创亿无限|创意无限|创意| -- 编程爱好者BLOG  
  2.   
  3.   
  4.   
  5. JavaScript高级应用:使用DOM技术操纵文档  
  6. 我们知道,如果使用DHTML对象模型对文档的内容进行操纵,就必须了解相关文档元素的特殊属性和方法。因为文档的元素有很多种,相应的属性和方法也就非常多,为了实现一个功能,开发人员不得不查询许多资料。但是有了DOM技术,一切变得简单起来,那些操纵文档内容的属性和方法具备了元素无关性(element-independent)特点,这使得我们能够按照相同的步骤操纵文档内容。毋庸置疑,DOM技术为开发人员在对象层次上操纵文档提供了最便捷的手段。  
  7.   
  8.   
  9. 本文就为你全面介绍在JavaScript中如何使用DOM属性和方法操纵文档内容。  
  10.   
  11.   
  12. 使用data、nodeValue和src属性  
  13.   
  14.   
  15. DOM提供了2个属性用于修改文本节点的内容,它们是data和nodeVaule。2个属性实现的功能相同,语法是:object.data="new 
  16. value"或者object.nodeVaule="new 
  17. value",其中object代表页面中的文本项节点。如果修改图形文件的内容,语法是:object.src=../../"new 
  18. value",其中object表示页面中的img标记节点。来看看下面的例子:  
  19.   
  20.   
  21. <HTML><HEAD><TITLE> DOM Demo </title></HEAD>  
  22.   
  23. <BODY ID="bodyNode">  
  24.   
  25. This is the document body  
  26.   
  27. <P ID = "p1Node">This is paragraph 1.</P>  
  28.   
  29. <P ID = "p2Node">This is paragraph 2.</P>  
  30.   
  31. <P ID = "p3Node">This is paragraph 3.  
  32.   
  33. <IMG ID = "imgNode" SRC="myexam.gif">This text follows the image  
  34.   
  35. <TABLE ID="tableNode">  
  36.   
  37. <TR><TD BGCOLOR=yellow>This is row 1, cell 1</TD><TD  
  38. BGCOLOR=orange>This is row 1, cell 2</TD></TR>  
  39.   
  40. <TR><TD BGCOLOR=red>This is row 2, cell 1</TD><TD BGCOLOR=magenta>This  
  41. is row 2, cell 2</TD></TR>  
  42.   
  43. <TR><TD BGCOLOR=lightgreen>This is row 3, cell 1</TD><TD  
  44. BGCOLOR=beige>This is row 3, cell 2</TD></TR>  
  45.   
  46. </TABLE>  
  47.   
  48. </P>  
  49.   
  50. <P ID = "p4Node">This is paragraph 4.</P>  
  51.   
  52. <SCRIPT LANGUAGE="JavaScript">  
  53.   
  54. <!--  
  55.   
  56. alert(  
  57.   
  58. "页面初始状态" + "\n\n" +  
  59.   
  60. "bodyNode.firstChild.nodeValue = " + bodyNode.firstChild.nodeValue + "\n" +  
  61.   
  62. "bodyNode.firstChild.data = " + bodyNode.firstChild.data + "\n"  
  63.   
  64. );  
  65.   
  66. bodyNode.firstChild.nodeValue = "This is the new document body, set by 
  67. the nodeValue property";  
  68.   
  69. p3Node.childNodes[1].src = "myexam2.gif";  
  70.   
  71. alert(  
  72.   
  73. "对页面内容进行修改后" + "\n\n" +  
  74.   
  75. "bodyNode.firstChild.nodeValue = " + bodyNode.firstChild.nodeValue + "\n" +  
  76.   
  77. "bodyNode.firstChild.data = " + bodyNode.firstChild.data + "\n" +  
  78.   
  79. "p3Node.childNodes[1].src = " + p3Node.childNodes[1].src  
  80.   
  81. );  
  82.   
  83. // -->  
  84.   
  85. </SCRIPT></BODY></HTML>  
  86.   
  87. 上述代码首先显示页面的初始内容以及节点p1Node的相关属性值,然后对节点bodyNode的第1个孩子节点的nodeValue属性进行赋值修改其文本内容,对节点p3Node的第2个孩子节点(也就是了img标记)的src属性进行赋值修改图形的内容。点击这里运行这个实例。  
  88.   
  89. JavaScript高级应用:使用DOM技术操纵文档  
  90. 使用createElement方法  
  91.   
  92.   
  93. createElement方法的功能是在文档中创建一个孤立HTML标记节点。孤立节点既没有孩子节点也没有双亲节点,而且与文档中的现存节点也互不关联。被创建的孤立HTML标记节点的唯一信息就是它代表的HTML标记,比如<  
  94. P>、< FONT>和< TABLE>。CreateElement的语法为document.createElement(HTMLTag),HTMLTag表示要创建的HTML标记,返回值是创建的孤立HTML标记节点。来看看下面的例子:  
  95.   
  96.   
  97. <HTML><HEAD><TITLE> DOM Demo </title></HEAD>  
  98.   
  99. <BODY ID="bodyNode">  
  100.   
  101. <SCRIPT LANGUAGE="JavaScript">  
  102.   
  103. <!--  
  104.   
  105. alert("页面初始状态");  
  106.   
  107. tableObj = document.createElement("TABLE");  
  108.   
  109. tbodyObj = document.createElement("TBODY");  
  110.   
  111. trObj = document.createElement("TR");  
  112.   
  113. tdObj = document.createElement("TD");  
  114.   
  115. alert(  
  116.   
  117. "对页面内容进行修改后" + "\n" +  
  118.   
  119. "bodyNode.firstChild = " + bodyNode.firstChild + "\n" +  
  120.   
  121. "tableObj.nodeName = " + tableObj.nodeName + "\n" +  
  122.   
  123. "tbodyObj.nodeName = " + tbodyObj.nodeName + "\n" +  
  124.   
  125. "trObj.nodeName = " + trObj.nodeName + "\n" +  
  126.   
  127. "tdObj.nodeName = " + tdObj.nodeName + "\n" +  
  128.   
  129. "tableObj = " + tableObj + "\n"  
  130.   
  131. );  
  132.   
  133. // -->  
  134.   
  135. </SCRIPT>  
  136.   
  137. </BODY>  
  138.   
  139. </HTML>  
  140.   
  141.   
  142. 上述代码在文档中创建了4个孤立HTML标记节点tableObj、tbodyObj、trObj和tdObj,它们就象太空中4颗人造卫星一样,彼此间以及和文档中的现有节点间都互不关联。创建孤立节点的目的不是为了让它真正孤立,随后我们会介绍如何将创建的孤立节点彼此相连,并添加到文档的DOM  
  143. Tree结构中。点击这里运行这个实例。  
  144.   
  145.   
  146. 使用createTextNode方法  
  147.   
  148.   
  149. createTextNode方法的功能与creatElement方法几乎相同,唯一不同的就是它是在文档中创建一个孤立文本项节点,这个孤立节点的唯一信息就是它所代表的字符串值。createTextNode的语法为document.  
  150. createTextNode (string),string表示要创建的文本项内容,返回值是创建的孤立文本项节点。来看看下面的例子:  
  151.   
  152. <HTML><HEAD><TITLE> DOM Demo </title></HEAD>  
  153.   
  154. <BODY ID="bodyNode">  
  155.   
  156. <SCRIPT LANGUAGE="JavaScript">  
  157.   
  158. <!--  
  159.   
  160. alert("页面初始状态");  
  161.   
  162. row1cell1Obj = document.createTextNode("This is row 1, cell 1");  
  163.   
  164. row1cell2Obj = document.createTextNode("This is row 1, cell 2");  
  165.   
  166. row2cell1Obj = document.createTextNode("This is row 2, cell 1");  
  167.   
  168. row2cell2Obj = document.createTextNode("This is row 2, cell 2");  
  169.   
  170. row3cell1Obj = document.createTextNode("This is row 3, cell 1");  
  171.   
  172. row3cell2Obj = document.createTextNode("This is row 3, cell 2");  
  173.   
  174. alert(  
  175.   
  176. "对页面内容进行修改后" + "\n" +  
  177.   
  178. "row1cell1Obj.firstchild = " + row1cell1Obj.firstChild + "\n" +  
  179.   
  180. "row1cell1Obj.nodeName = " + row1cell1Obj  
  181.   
  182. );  
  183.   
  184. // -->  
  185.   
  186. </SCRIPT></BODY></HTML>  
  187.   
  188.   
  189. 上述代码在文档中创建了6个孤立文本项节点,它们表示一个32列大小Table的单元格内容。点击这里运行这个实例。  
  190.   
  191. JavaScript高级应用:使用DOM技术操纵文档  
  192. 使用cloneNode方法  
  193.   
  194.   
  195. cloneNode方法的功能是通过克隆(也就是复制)文档中一个现存节点的方式创建文档的一个孤立节点。根据被克隆节点的类型,新创建的孤立节点或者是HTML标记节点,或者是包含字符串信息的文本项节点。cloneNode的语法为oldNode.createNode(false)或者oldNode.createNode(true),oldNode表示被克隆的节点,返回值是新创建的节点,false表示仅仅克隆oldNode,true表示克隆oldNode并包含其下属节点。来看看下面的例子:  
  196.   
  197. <HTML><HEAD><TITLE> DOM Demo </title></HEAD>  
  198.   
  199. <BODY ID="bodyNode">  
  200.   
  201. <SCRIPT LANGUAGE="JavaScript">  
  202.   
  203. <!--  
  204.   
  205. alert("页面初始状态");  
  206.   
  207. tableObj = document.createElement("TABLE");  
  208.   
  209. tbodyObj = document.createElement("TBODY");  
  210.   
  211. tr1Obj = document.createElement("TR");  
  212.   
  213. tr2Obj = tr1Obj.cloneNode(false);  
  214.   
  215. tr3Obj = tr1Obj.cloneNode(false);  
  216.   
  217. tr1td1Obj = document.createElement("TD");  
  218.   
  219. tr1td2Obj = tr1td1Obj.cloneNode(false);  
  220.   
  221. tr2td1Obj = tr1td1Obj.cloneNode(false);  
  222.   
  223. tr2td2Obj = tr1td1Obj.cloneNode(false);  
  224.   
  225. tr3td1Obj = tr1td1Obj.cloneNode(false);  
  226.   
  227. tr3td2Obj = tr1td1Obj.cloneNode(false);  
  228.   
  229. row1cell1Obj = document.createTextNode("This is row 1, cell 1");  
  230.   
  231. row1cell2Obj = row1cell1Obj.cloneNode(false);  
  232.   
  233. row2cell1Obj = row1cell1Obj.cloneNode(false);  
  234.   
  235. row2cell2Obj = row1cell1Obj.cloneNode(false);  
  236.   
  237. row3cell1Obj = row1cell1Obj.cloneNode(false);  
  238.   
  239. row3cell2Obj = row1cell1Obj.cloneNode(false);  
  240.   
  241. row1cell2Obj.nodeValue = "This is row 1, cell 2";  
  242.   
  243. row2cell1Obj.nodeValue = "This is row 2, cell 1";  
  244.   
  245. row2cell2Obj.nodeValue = "This is row 2, cell 2";  
  246.   
  247. row3cell1Obj.nodeValue = "This is row 3, cell 1";  
  248.   
  249. row3cell2Obj.nodeValue = "This is row 3, cell 2";  
  250.   
  251. alert(  
  252.   
  253. "对页面内容进行修改后" + "\n" +  
  254.   
  255. "row1cell2Obj.firstChild = " + row1cell2Obj.firstChild+ "\n" +  
  256.   
  257. "row1cell2Obj = " + row1cell2Obj + "\n" +  
  258.   
  259. "row3cell2Obj.nodeValue = " + row3cell2Obj.nodeValue + "\n" +  
  260.   
  261. "tr3td2Obj.nodeName = " + tr3td2Obj.nodeName + "\n"  
  262.   
  263. );  
  264.   
  265. // -->  
  266.   
  267. </SCRIPT></BODY></HTML>  
  268.   
  269. 上述代码中值得注意的是对文本项节点的处理方式:  
  270.   
  271.   
  272. 1、首先,使用语句row1cell1Obj = document.createTextNode("This is row 1, cell 
  273. 1")创建单元格(11)所在节点;  
  274.   
  275. 2、然后使用语句row1cell1Obj.cloneNode(false)分别创建其他单元格节点;  
  276.   
  277. 3、最后,使用语句node.nodeValue = string分别为不同单元格赋值。  
  278.   
  279.   
  280. 点击这里运行这个实例。  
  281.   
  282. JavaScript高级应用:使用DOM技术操纵文档  
  283. 使用appendChild方法  
  284.   
  285.   
  286. appendChild方法的功能是在2个节点间建立起父子关系,如果作为父亲的节点已经具有了孩子节点,那么新添加的孩子节点被追加为最后一个孩子,也就是lastChild。appendChild的语法是fatherObj.appendChild(childObj),返回值是被追加的孩子节点。来看看下面的例子:  
  287.   
  288.   
  289. <HTML><HEAD><TITLE> DOM Demo </title></HEAD>  
  290.   
  291. <BODY ID="bodyNode">  
  292.   
  293. <SCRIPT LANGUAGE="JavaScript">  
  294.   
  295. <!--  
  296.   
  297. alert("页面初始状态");  
  298.   
  299. tableObj = document.createElement("TABLE");  
  300.   
  301. tbodyObj = document.createElement("TBODY");  
  302.   
  303. tr1Obj = document.createElement("TR");  
  304.   
  305. tr2Obj = tr1Obj.cloneNode();  
  306.   
  307. tr3Obj = tr1Obj.cloneNode();  
  308.   
  309. tr1td1Obj = document.createElement("TD");  
  310.   
  311. tr1td2Obj = tr1td1Obj.cloneNode();  
  312.   
  313. tr2td1Obj = tr1td1Obj.cloneNode();  
  314.   
  315. tr2td2Obj = tr1td1Obj.cloneNode();  
  316.   
  317. tr3td1Obj = tr1td1Obj.cloneNode();  
  318.   
  319. tr3td2Obj = tr1td1Obj.cloneNode();  
  320.   
  321. row1cell1Obj = document.createTextNode("This is row 1, cell 1");  
  322.   
  323. row1cell2Obj = row1cell1Obj.cloneNode();  
  324.   
  325. row2cell1Obj = row1cell1Obj.cloneNode();  
  326.   
  327. row2cell2Obj = row1cell1Obj.cloneNode();  
  328.   
  329. row3cell1Obj = row1cell1Obj.cloneNode();  
  330.   
  331. row3cell2Obj = row1cell1Obj.cloneNode();  
  332.   
  333. row1cell2Obj.nodeValue = "This is row 1, cell 2";  
  334.   
  335. row2cell1Obj.nodeValue = "This is row 2, cell 1";  
  336.   
  337. row2cell2Obj.nodeValue = "This is row 2, cell 2";  
  338.   
  339. row3cell1Obj.nodeValue = "This is row 3, cell 1";  
  340.   
  341. row3cell2Obj.nodeValue = "This is row 3, cell 2";  
  342.   
  343. returnValue = tableObj.appendChild(tbodyObj);  
  344.   
  345. tbodyObj.appendChild(tr1Obj);  
  346.   
  347. tbodyObj.appendChild(tr2Obj);  
  348.   
  349. tbodyObj.appendChild(tr3Obj);  
  350.   
  351. tr1Obj.appendChild(tr1td1Obj);  
  352.   
  353. tr1Obj.appendChild(tr1td2Obj);  
  354.   
  355. tr2Obj.appendChild(tr2td1Obj);  
  356.   
  357. tr2Obj.appendChild(tr2td2Obj);  
  358.   
  359. tr3Obj.appendChild(tr3td1Obj);  
  360.   
  361. tr3Obj.appendChild(tr3td2Obj);  
  362.   
  363. tr1td1Obj.appendChild(row1cell1Obj);  
  364.   
  365. tr1td2Obj.appendChild(row1cell2Obj);  
  366.   
  367. tr2td1Obj.appendChild(row2cell1Obj);  
  368.   
  369. tr2td2Obj.appendChild(row2cell2Obj);  
  370.   
  371. tr3td1Obj.appendChild(row3cell1Obj);  
  372.   
  373. tr3td2Obj.appendChild(row3cell2Obj);  
  374.   
  375. bodyNode.appendChild(tableObj);  
  376.   
  377. alert("对页面内容进行修改后");  
  378.   
  379. // -->  
  380.   
  381. </SCRIPT></BODY></HTML>  
  382.   
  383. 上面的代码演示了一个Table的动态创建过程。首先创建Table的各个行、列以及单元格的节点,然后使用appendChild将这些节点进行连接形成一个Table,最后通过语句bodyNode.appendChild(tableObj)将Table装载进文档中。点击这里运行这个实例  
  384.   
  385. JavaScript高级应用:使用DOM技术操纵文档  
  386. 使用applyElement方法  
  387.   
  388.   
  389. applyElement方法的功能是将一个节点与它的孩子节点和父亲节点脱离,然后将另外一个节点连接到这个节点,最终使它们成为父子关系。applyElement的语法是childObj.applyElement(fatherObj),返回值是被连接的孩子节点。  
  390.   
  391.   
  392. 我们注意到,applyElement和appendChild实现的目的基本相同,都是在2个节点间建立父子关系,但有2个区别:  
  393.   
  394.   
  395. 1、applyElement方法只能操纵HTML标记节点,不能处理文本项节点。appendNode则能处理2种节点。  
  396.   
  397. 2、appendNode对2个节点的连接方式是从父到子,applyElement则是从子到父。  
  398.   
  399.   
  400. 来看看下面的例子:  
  401.   
  402.   
  403. <HTML><HEAD><TITLE> DOM Demo </title></HEAD>  
  404.   
  405. <BODY ID="bodyNode">  
  406.   
  407. <SCRIPT LANGUAGE="JavaScript">  
  408.   
  409. <!--  
  410.   
  411. alert("页面初始状态");  
  412.   
  413. tableObj = document.createElement("TABLE");  
  414.   
  415. tbodyObj = document.createElement("TBODY");  
  416.   
  417. tr1Obj = document.createElement("TR");  
  418.   
  419. tr2Obj = tr1Obj.cloneNode();  
  420.   
  421. tr3Obj = tr1Obj.cloneNode();  
  422.   
  423. tr1td1Obj = document.createElement("TD");  
  424.   
  425. tr1td2Obj = tr1td1Obj.cloneNode();  
  426.   
  427. tr2td1Obj = tr1td1Obj.cloneNode();  
  428.   
  429. tr2td2Obj = tr1td1Obj.cloneNode();  
  430.   
  431. tr3td1Obj = tr1td1Obj.cloneNode();  
  432.   
  433. tr3td2Obj = tr1td1Obj.cloneNode();  
  434.   
  435. row1cell1Obj = document.createTextNode("This is row 1, cell 1");  
  436.   
  437. row1cell2Obj = row1cell1Obj.cloneNode();  
  438.   
  439. row2cell1Obj = row1cell1Obj.cloneNode();  
  440.   
  441. row2cell2Obj = row1cell1Obj.cloneNode();  
  442.   
  443. row3cell1Obj = row1cell1Obj.cloneNode();  
  444.   
  445. row3cell2Obj = row1cell1Obj.cloneNode();  
  446.   
  447. row1cell2Obj.nodeValue = "This is row 1, cell 2";  
  448.   
  449. row2cell1Obj.nodeValue = "This is row 2, cell 1";  
  450.   
  451. row2cell2Obj.nodeValue = "This is row 2, cell 2";  
  452.   
  453. row3cell1Obj.nodeValue = "This is row 3, cell 1";  
  454.   
  455. row3cell2Obj.nodeValue = "This is row 3, cell 2";  
  456.   
  457. tr1td1Obj.appendChild(row1cell1Obj);  
  458.   
  459. tr1td2Obj.appendChild(row1cell2Obj);  
  460.   
  461. tr2td1Obj.appendChild(row2cell1Obj);  
  462.   
  463. tr2td2Obj.appendChild(row2cell2Obj);  
  464.   
  465. tr3td1Obj.appendChild(row3cell1Obj);  
  466.   
  467. tr3td2Obj.appendChild(row3cell2Obj);  
  468.   
  469. tr1td1Obj.applyElement(tr1Obj);  
  470.   
  471. tr1Obj.appendChild(tr1td2Obj);  
  472.   
  473. tr2td1Obj.applyElement(tr2Obj);  
  474.   
  475. tr2Obj.appendChild(tr2td2Obj);  
  476.   
  477. tr3td1Obj.applyElement(tr3Obj);  
  478.   
  479. tr3Obj.appendChild(tr3td2Obj);  
  480.   
  481. tr1Obj.applyElement(tbodyObj);  
  482.   
  483. tbodyObj.appendChild(tr2Obj);  
  484.   
  485. tbodyObj.appendChild(tr3Obj);  
  486.   
  487. returnValue = tbodyObj.applyElement(tableObj);  
  488.   
  489. bodyNode.appendChild(tableObj);  
  490.   
  491. alert("对页面内容进行修改后");  
  492.   
  493. // -->  
  494.   
  495. </SCRIPT></BODY></HTML>  
  496.   
  497. 上面的代码同样演示了一个Table的动态创建过程。首先创建Table的各个行、列以及单元格的节点,然后混合使用applyElement和appendChild将这些节点进行连接形成一个Table,最后通过语句bodyNode.appendChild(tableObj)将Table装载进文档中。点击这里运行这个实例。  
  498.   
  499. JavaScript高级应用:使用DOM技术操纵文档  
  500.  使用insertBefore方法  
  501.   
  502.   
  503. insertBefore方法的功能和appendChild相似,都是将一个孩子节点连接到一个父亲节点,但insertBefore方法允许我们指定孩子节点的位置。insertBefore的语法是fatherObj.insertBefore(childObj,  
  504. brotherObj),返回值是被连接的孩子节点。执行后,childObj的位置在brotherObj之前。来看看下面的例子:  
  505.   
  506. <HTML><HEAD><TITLE> DOM Demo </title></HEAD>  
  507.   
  508. <BODY ID="bodyNode">  
  509.   
  510. <SCRIPT LANGUAGE="JavaScript">  
  511.   
  512. <!--  
  513.   
  514. alert("页面初始状态");  
  515.   
  516. tableObj = document.createElement("TABLE");  
  517.   
  518. tbodyObj = document.createElement("TBODY");  
  519.   
  520. tr1Obj = document.createElement("TR");  
  521.   
  522. tr2Obj = tr1Obj.cloneNode();  
  523.   
  524. tr3Obj = tr1Obj.cloneNode();  
  525.   
  526. tr1td1Obj = document.createElement("TD");  
  527.   
  528. tr1td2Obj = tr1td1Obj.cloneNode();  
  529.   
  530. tr2td1Obj = tr1td1Obj.cloneNode();  
  531.   
  532. tr2td2Obj = tr1td1Obj.cloneNode();  
  533.   
  534. tr3td1Obj = tr1td1Obj.cloneNode();  
  535.   
  536. tr3td2Obj = tr1td1Obj.cloneNode();  
  537.   
  538. row1cell1Obj = document.createTextNode("This is row 1, cell 1");  
  539.   
  540. row1cell2Obj = row1cell1Obj.cloneNode();  
  541.   
  542. row2cell1Obj = row1cell1Obj.cloneNode();  
  543.   
  544. row2cell2Obj = row1cell1Obj.cloneNode();  
  545.   
  546. row3cell1Obj = row1cell1Obj.cloneNode();  
  547.   
  548. row3cell2Obj = row1cell1Obj.cloneNode();  
  549.   
  550. row1cell2Obj.nodeValue = "This is row 1, cell 2";  
  551.   
  552. row2cell1Obj.nodeValue = "This is row 2, cell 1";  
  553.   
  554. row2cell2Obj.nodeValue = "This is row 2, cell 2";  
  555.   
  556. row3cell1Obj.nodeValue = "This is row 3, cell 1";  
  557.   
  558. row3cell2Obj.nodeValue = "This is row 3, cell 2";  
  559.   
  560. returnValue = tableObj.insertBefore(tbodyObj);  
  561.   
  562. tbodyObj.insertBefore(tr3Obj);  
  563.   
  564. tbodyObj.insertBefore(tr2Obj, tr3Obj);  
  565.   
  566. tbodyObj.insertBefore(tr1Obj, tr2Obj);  
  567.   
  568. tr1Obj.insertBefore(tr1td2Obj);  
  569.   
  570. tr1Obj.insertBefore(tr1td1Obj, tr1td2Obj);  
  571.   
  572. tr2Obj.insertBefore(tr2td2Obj);  
  573.   
  574. tr2Obj.insertBefore(tr2td1Obj, tr2td2Obj);  
  575.   
  576. tr3Obj.insertBefore(tr3td2Obj);  
  577.   
  578. tr3Obj.insertBefore(tr3td1Obj, tr3td2Obj);  
  579.   
  580. tr1td2Obj.insertBefore(row1cell2Obj);  
  581.   
  582. tr1td1Obj.insertBefore(row1cell1Obj);  
  583.   
  584. tr2td2Obj.insertBefore(row2cell2Obj);  
  585.   
  586. tr2td1Obj.insertBefore(row2cell1Obj);  
  587.   
  588. tr3td2Obj.insertBefore(row3cell2Obj);  
  589.   
  590. tr3td1Obj.insertBefore(row3cell1Obj);  
  591.   
  592. bodyNode.insertBefore(tableObj);  
  593.   
  594. // -->  
  595.   
  596. </SCRIPT></BODY></HTML>  
  597.   
  598. 上面的代码又一次演示了一个Table的动态创建过程。首先创建Table的各个行、列以及单元格的节点,然后混合使用insertBefore将这些节点进行连接形成一个Table,最后通过语句bodyNode.  
  599. insertBefore (tableObj)将Table装载进文档中。可以看到,如果省略掉第2个参数brotherObj采用fatherObj.insertBefore(childObj)方式,那么一定是在要连入的父亲节点还没有孩子节点的情况下,这时,就和appendNode方法的功能完全一样了。点击这里运行这个实例。  
  600.   
  601.   
  602. 使用removeNode方法  
  603.   
  604.   
  605. removeNode方法的功能是删除一个节点,语法为node.removeNode(false)或者node.removeNode(true),返回值是被删除的节点。removeNode(false)表示仅仅删除指定节点,然后这个节点的原孩子节点提升为原双亲节点的孩子节点。removeNode(true)表示删除指定节点及其所有下属节点。被删除的节点成为了孤立节点,不再具有有孩子节点和双亲节点。来看看下面的例子:  
  606.   
  607. <HTML><HEAD><TITLE>DOM Demo</TITLE></HEAD>  
  608.   
  609. <BODY id=bodyNode>This is the document body  
  610.   
  611. <P id=p1Node>This is paragraph 1.</P>  
  612.   
  613. <P id=p2Node>This is paragraph 2.</P>  
  614.   
  615. <P id=p3Node>This is paragraph 3. <IMG id=imgNode  
  616.   
  617. src="myexam.gif">This text follows the image  
  618.   
  619. <TABLE id=tableNode>  
  620.   
  621. <TBODY>  
  622.   
  623. <TR>  
  624.   
  625. <TD bgColor=yellow>This is row 1, cell 1</TD>  
  626.   
  627. <TD bgColor=orange>This is row 1, cell 2</TD></TR>  
  628.   
  629. <TR>  
  630.   
  631. <TD bgColor=red>This is row 2, cell 1</TD>  
  632.   
  633. <TD bgColor=magenta>This is row 2, cell 2</TD></TR>  
  634.   
  635. <TR>  
  636.   
  637. <TD bgColor=lightgreen>This is row 3, cell 1</TD>  
  638.   
  639. <TD bgColor=beige>This is row 3, cell 2</TD></TR></TBODY></TABLE></P>  
  640.   
  641. <P id=p4Node>This is paragraph 4.</P>  
  642.   
  643. <SCRIPT language=JavaScript>  
  644.   
  645. <!--  
  646.   
  647. var msg = "";  
  648.   
  649. function printChildren() {  
  650.   
  651. childCount = bodyNode.childNodes.length;  
  652.   
  653. msg += "bodyNode.childNodes.length = " + bodyNode.childNodes.length + "\n" ;  
  654.   
  655. for(var i = 0; i < childCount; i++) {  
  656.   
  657. msg += "bodyNode.childNodes[i].nodeName = " +  
  658. bodyNode.childNodes[i].nodeName + "\n";  
  659.   
  660. }  
  661.   
  662. alert(msg);  
  663.   
分享到:
评论
5 楼 xms_999 2007-07-18  
谢谢分享
4 楼 hexiaodong 2007-04-10  
qmei 写道
利用XMLDOM技术做的开源的web打印控件 www.fcsoft.com.cn/ePrint.htm


你们的打印控件(ocx)还可以,不过不喜欢其中的htc控件。所以单据打印和报表打印,我是自己写的js控件
3 楼 knight 2007-04-10  
http://knight.iteye.com/admin/show/44413
这里就有手册可以下载了。。。
2 楼 cozone_柯中 2007-04-10  
麻烦你给个demo吧,这么大篇幅的代码,看的头疼
1 楼 AvengerBevis 2007-04-10  
<div class='code_title'>java 代码</div>
<div class='dp-highlighter'>
<div class='bar'> </div>
<ol class='dp-j' start='1'>
    <li class='alt'><span><span>}  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>msg=<span class='string'>"页面初始状态"</span><span> + </span><span class='string'>"\n\n"</span><span>  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>printChildren();  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>msg=<span class='string'>"对页面内容进行修改后"</span><span> + </span><span class='string'>"\n\n"</span><span>  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>msg += <span class='string'>"Deleting Paragraph 3\n"</span><span>;  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>var deletedNode = p3Node.removeNode(<span class='keyword'>false</span><span>);  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>msg += <span class='string'>"deletedNode.nodeName = "</span><span> + deletedNode.nodeName + </span><span class='string'>"\n"</span><span>;  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>msg += <span class='string'>"deletedNode.childNodes.length = "</span><span> +  </span></span></li>
    <li class=''><span>deletedNode.childNodes.length + <span class='string'>"\n"</span><span>;  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>printChildren();  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span><span class='comment'>// --></span><span>  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span></SCRIPT></BODY></HTML>  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>上述代码首先显示页面的初始内容以及bodyNode的每个孩子节点的nodeName属性值,然后仅仅删除p3Node。删除p3Node前,bodyNode有<span class='number'>6</span><span>个孩子节点,p3Node有</span><span class='number'>4</span><span>个孩子节点。删除p3Node后,节点p3Node的</span><span class='number'>4</span><span>个孩子节点提升为bodyNode的孩子节点,这样bodyNode就有了</span><span class='number'>9</span><span>个节点。p3Node被删除后返回值为deletedNode,它的nodeName属性值为P,孩子节点数为</span><span class='number'>0</span><span>,也就是说,它成为一个孤立节点。点击这里运行这个实例。  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>现在我们将上述代码中的deletedNode = p3Node.removeNode(<span class='keyword'>false</span><span>)修改为deletedNode =  </span></span></li>
    <li class=''><span>p3Node.removeNode(<span class='keyword'>true</span><span>),你会看到,删除p3Node后,bodyNode的孩子节点数变为</span><span class='number'>5</span><span>。点击这里看看实际效果。  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>JavaScript高级应用:使用DOM技术操纵文档  </span></li>
    <li class='alt'><span>使用replaceNode方法  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>replaceNode方法的功能是用新创建的节点替换一个节点及其下属节点,语法为oldNode.replaceNode(newNode),返回值是被替换的节点。来看看下面的例子:  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><HTML><HEAD><TITLE> DOM Demo </title></HEAD>  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><BODY ID=<span class='string'>"bodyNode"</span><span>>  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>This is the document body  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><P ID = <span class='string'>"p1Node"</span><span>>This is paragraph </span><span class='number'>1</span><span>.</P>  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><P ID = <span class='string'>"p2Node"</span><span>>This is paragraph </span><span class='number'>2</span><span>.</P>  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><P ID = <span class='string'>"p3Node"</span><span>>This is paragraph </span><span class='number'>3</span><span>.  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><IMG ID = <span class='string'>"imgNode"</span><span> SRC=</span><span class='string'>"myexam.gif"</span><span>>This text follows the image  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><TABLE ID=<span class='string'>"tableNode"</span><span>>  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><TR><TD BGCOLOR=yellow>This is row <span class='number'>1</span><span>, cell </span><span class='number'>1</span><span></TD><TD  </span></span></li>
    <li class=''><span>BGCOLOR=orange>This is row <span class='number'>1</span><span>, cell </span><span class='number'>2</span><span></TD></TR>  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span><TR><TD BGCOLOR=red>This is row <span class='number'>2</span><span>, cell </span><span class='number'>1</span><span></TD><TD BGCOLOR=magenta>This  </span></span></li>
    <li class='alt'><span>is row <span class='number'>2</span><span>, cell </span><span class='number'>2</span><span></TD></TR>  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><TR><TD BGCOLOR=lightgreen>This is row <span class='number'>3</span><span>, cell </span><span class='number'>1</span><span></TD><TD  </span></span></li>
    <li class=''><span>BGCOLOR=beige>This is row <span class='number'>3</span><span>, cell </span><span class='number'>2</span><span></TD></TR>  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span></TABLE>  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span></P>  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span><P ID = <span class='string'>"p4Node"</span><span>>This is paragraph </span><span class='number'>4</span><span>.</P>  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span><SCRIPT LANGUAGE=<span class='string'>"JavaScript"</span><span>>  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span><!--  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>var msg = <span class='string'>""</span><span>;  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>function printChildren() {  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>childCount = bodyNode.childNodes.length;  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>msg += <span class='string'>"bodyNode.childNodes.length = "</span><span> + bodyNode.childNodes.length + </span><span class='string'>"\n"</span><span> ;  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span><span class='keyword'>for</span><span>(var i = </span><span class='number'>0</span><span>; i < childCount; i++) {  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>msg += <span class='string'>"bodyNode.childNodes[i].nodeName = "</span><span> +  </span></span></li>
    <li class='alt'><span>bodyNode.childNodes[i].nodeName + <span class='string'>"\n"</span><span>;  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>}  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>alert(msg);  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>}  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>msg=<span class='string'>"页面初始状态"</span><span> + </span><span class='string'>"\n\n"</span><span>  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>printChildren();  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>msg=<span class='string'>"对页面内容进行修改后"</span><span> + </span><span class='string'>"\n\n"</span><span>  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>msg += <span class='string'>"Replacing Paragraph 3\n"</span><span>;  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>var b = document.createTextNode(<span class='string'>"New Body Page"</span><span>);  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>var replacedNode = p3Node.replaceNode(b);  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>msg += <span class='string'>"replacedNode.nodeName = "</span><span> + replacedNode.nodeName + </span><span class='string'>"\n"</span><span>;  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>msg += <span class='string'>"replacedNode.childNodes.length = "</span><span> +  </span></span></li>
    <li class=''><span>replacedNode.childNodes.length + <span class='string'>"\n"</span><span>;  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>msg += <span class='string'>"p2Node.nodeName = "</span><span> + p2Node.nodeName + </span><span class='string'>"\n"</span><span>;  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>printChildren();  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span><span class='comment'>// --></span><span>  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span></SCRIPT></BODY></HTML>  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>上述代码首先显示页面的初始内容以及bodyNode的每个孩子节点的nodeName属性值,然后用新创建的文本项节点替换p3Node。替换后,bodyNode的孩子节点数目没有变,原来的P节点替换为文本项节点。变量replaceNode表示被替换的节点p3Node,它仍包含原来的<span class='number'>4</span><span>个孩子节点。点击这里运行这个实例。  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>replaceNode方法的另一个功能是删除节点及其下属节点,就象前面介绍的removeNode(<span class='keyword'>true</span><span>)一样。这时,我们只需将replaceNode方法的参数设置为一个现存的节点就可以。现在,我们将上述代码中的b  </span></span></li>
    <li class=''><span>= document.createTextNode(<span class='string'>"New Body Page"</span><span>)修改为b =  </span></span></li>
    <li class='alt'><span>p2Node,你会看到,p3Node及其下属节点被删除了,没有替换节点生成,bodyNode的孩子节点数变为<span class='number'>5</span><span>。点击这里看看实际效果。  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>如果replaceNode方法的参数为空,也就是执行replaceNode(),那么将导致浏览器脚本运行错误。  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>JavaScript高级应用:使用DOM技术操纵文档  </span></li>
    <li class='alt'><span>使用swapNode方法  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>swapNode方法的功能是交换<span class='number'>2</span><span>个节点(包括其下属节点)在文档Tree中的位置,语法为firstNode.swapNode(secondNode),返回值是节点firstNode。来看看下面的例子:  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><HTML><HEAD><TITLE>DOM Demo</TITLE></HEAD>  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><BODY id=bodyNode>This is the document body  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><P id=p1Node>This is paragraph <span class='number'>1</span><span>.</P>  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><P id=p2Node>This is paragraph <span class='number'>2</span><span>.</P>  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><P id=p3Node>This is paragraph <span class='number'>3</span><span>. <IMG id=imgNode  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>src=<span class='string'>"myexam.gif"</span><span>>This text follows the image  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><TABLE id=tableNode>  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><TBODY>  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><TR>  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><TD bgColor=yellow>This is row <span class='number'>1</span><span>, cell </span><span class='number'>1</span><span></TD>  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><TD bgColor=orange>This is row <span class='number'>1</span><span>, cell </span><span class='number'>2</span><span></TD></TR>  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><TR>  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><TD bgColor=red>This is row <span class='number'>2</span><span>, cell </span><span class='number'>1</span><span></TD>  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><TD bgColor=magenta>This is row <span class='number'>2</span><span>, cell </span><span class='number'>2</span><span></TD></TR>  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><TR>  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><TD bgColor=lightgreen>This is row <span class='number'>3</span><span>, cell </span><span class='number'>1</span><span></TD>  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><TD bgColor=beige>This is row <span class='number'>3</span><span>, cell </span><span class='number'>2</span><span></TD></TR></TBODY></TABLE></P>  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><P id=p4Node>This is paragraph <span class='number'>4</span><span>.</P>  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><SCRIPT language=JavaScript>  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><!--  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>var msg = <span class='string'>""</span><span>;  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>function printChildren() {  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>childCount = bodyNode.childNodes.length;  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>msg += <span class='string'>"bodyNode.childNodes.length = "</span><span> + bodyNode.childNodes.length + </span><span class='string'>"\n"</span><span> ;  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><span class='keyword'>for</span><span>(var i = </span><span class='number'>0</span><span>; i < childCount; i++) {  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>msg += <span class='string'>"bodyNode.childNodes[i].nodeName = "</span><span> +  </span></span></li>
    <li class=''><span>bodyNode.childNodes[i].nodeName + <span class='string'>"\n"</span><span>;  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>}  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>alert(msg);  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>}  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>msg=<span class='string'>"页面初始状态"</span><span> + </span><span class='string'>"\n\n"</span><span>  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>printChildren();  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>msg=<span class='string'>"对页面内容进行修改后"</span><span> + </span><span class='string'>"\n\n"</span><span>  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>msg += <span class='string'>"Swapping Paragraph 3 with Paragraph 2\n"</span><span>;  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>var b = p2Node;  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>var swappedNode = p3Node.swapNode(b);  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>msg += <span class='string'>"swappedNode.nodeName = "</span><span> + swappedNode.nodeName + </span><span class='string'>"\n"</span><span>;  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>msg += <span class='string'>"swappedNode.childNodes.length = "</span><span> +  </span></span></li>
    <li class='alt'><span>swappedNode.childNodes.length + <span class='string'>"\n"</span><span>;  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>msg += <span class='string'>"p2Node.nodeName = "</span><span> + p2Node.nodeName + </span><span class='string'>"\n"</span><span>;  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>printChildren();  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span><span class='comment'>// --></span><span>  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span></SCRIPT></BODY></HTML>  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>上述代码首先显示页面的初始内容以及bodyNode的每个孩子节点的nodeName属性值,然后交换p3Node和p2Node的位置。交换后,bodyNode的孩子节点数目没有变,变量swappedNode表示p3Node,它仍包含原来的<span class='number'>4</span><span>个孩子节点。点击这里运行这个实例。  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>swapNode方法的另一个功能是替换节点及其下属节点,就象前面介绍的replaceNode方法一样。这时,我们只需将replaceNode方法的参数设置为一个新创建的节点就可以。现在,我们将上述代码中的b  </span></li>
    <li class='alt'><span>= p2Node修改为b = document.createTextNode(<span class='string'>"This is a swapped in</span> </span></li>
    <li class=''><span><span class='string'>text"</span><span>),你会看到,p3Node及其下属节点被新创建的文本项节点所替换,原来的节点类型P变为了文本项节点类型#text。点击这里看看实际效果。  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>结 语  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>以上我们详细讲解了JavaScript语言中在层次关系上操纵对象的各种DOM属性和方法原理,并且配以例程演示了实际的运行效果。我相信你已经完全掌握了如何使用这些方法,并会逐渐加深对DOM技术的喜爱。因为,DOM技术确实简化了文档对象的访问方式,为开发人员在对象层次上操纵文档提供了最便捷的手段。  </span></li>
</ol>
</div>

相关推荐

    Java实现用DOM文档和XML文件互换的操作

    文档对象模型是HTML和XML文档的编程接口...可以说,要自由的操纵XML文件,就要用到DOM规范。DOM文档中的逻辑结构可以用节点树的形式进行表述。通过对XML文件的解析处理,XML文件中的元素便转化为DOM文档中的节点对象。

    DOM解析 DOM4j解析

    DOM 为创建、处理和操纵 XML 文档提供了灵活和有效的方法,但使用起来可能比较困难并且可能导致不稳定和错误的代码。作者 Parand Tony Daruger 提供了一套 Java 用法模式和函数库,使 DOM 变得健壮且易于使用。

    DOM和SAX概念的总结

    通常我们使用根据以下这些模型创建的API 来分析和操纵XML结构,这些模型可以是基于对象(基于树)的,如文档对象模型(Document Object Model,DOM);也可以是基于事件(基于流、推模型)的,如 Simple API for XML...

    XML文档对象模型入门

    文档对象模型就是这样一个结构化文档编程接口,它定义了文档的逻辑结构以及访问和操纵文档的方法。使用 DOM 模型,程序员可以方便地创建文档、导航其结构,或增加、修改、删除、移动文档的任何成份。DOM 标准的出现...

    Web应用安全:DOM型XSS.pptx

    DOM中有很多对象,其中一些是用户可以操纵的,如urI,location,refelter等。 客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行。 DOM ...

    [JavaScript.DOM高级程序设计](加)桑贝斯.扫描版.part1.rar

     9.2.3 操纵DOM文档   9.3 处理事件   9.3.1 注册事件   9.3.2 自定义事件   9.4 访问和操纵样式   9.5 通信   9.6 小结   第10章 添加效果增强用户体验   10.1 自己动手实现效果   ...

    AJAX 学习资料WORD文档

    第 5 部分: 操纵 DOM 51 第 6 部分: 建立基于 DOM 的 Web 应用程序 65 第 7 部分: 在请求和响应中使用 XML 80 第 8 部分: 在请求和响应中使用 XML 87 第 9 部分: Web 2.0 用户界面技术 95 第 10 部分: 使用 JSON ...

    北京中科信软AJAX培训

    使用DOM操作XML文档 XMLHttpRequest对象 XMLHttpRequest对象与Ajax XMLHttpRequest对象的属性和方法 Ajax编程 如何使用Ajax 初始化对象 指定响应处理函数 发出http请求 处理服务器返回的信息 一个初步的Ajax开发框架...

    dom-examples:各种MDN DOM和Web API文档页面随附的代码示例

    各种MDN DOM和Web API文档页面随附的代码示例。 “ abort-api”目录包含有关如何使用“ Abort API”(又名和 )的。 。 “ auxclick”目录包含一个演示新auxclick事件类型的简单示例。 有关更多详细信息,请参见 ...

    JavaScript DOM高级程序设计 Part II

    文档带有章节目录。 第一章 遵循最佳实践 第二章 创建可重用的对象 第三章 DOM2核心和DOM2 HTML 第四章 响应用户操作事件 第五章 动态修改样式和层叠样式表 第六章 案例研究:图像裁剪和缩放工具 6.1 测试文件 6.2...

    JavaScript DOM高级程序设计 Part I

    文档带有章节目录。 第一章 遵循最佳实践 第二章 创建可重用的对象 第三章 DOM2核心和DOM2 HTML 第四章 响应用户操作事件 第五章 动态修改样式和层叠样式表 第六章 案例研究:图像裁剪和缩放工具 6.1 测试文件 6.2...

    [JavaScript.DOM高级程序设计](加)桑贝斯.扫描版.part3.rar

     9.2.3 操纵DOM文档   9.3 处理事件   9.3.1 注册事件   9.3.2 自定义事件   9.4 访问和操纵样式   9.5 通信   9.6 小结   第10章 添加效果增强用户体验   10.1 自己动手实现效果   ...

    [JavaScript.DOM高级程序设计](加)桑贝斯.扫描版.part2.rar

     9.2.3 操纵DOM文档   9.3 处理事件   9.3.1 注册事件   9.3.2 自定义事件   9.4 访问和操纵样式   9.5 通信   9.6 小结   第10章 添加效果增强用户体验   10.1 自己动手实现效果   ...

    详解JavaScript对W3C DOM模版的支持情况

    本文档对象模型允许访问所有的文档内容和...此外,这里是文档属性,可以使用W3C DOM访问列表:  文档方法在W3C DOM: 此模型支持所有传统DOM提供的方法。此外,这里是由W3C DOM支持的方法列表:  示例: 这是(访问

    vue-masonry-wall-纯粹的vue响应式砌体布局,无需直接进行dom操纵,ssr友好和延迟加载。-Vue.js开发

    我创建了这个becaus vue-masonry-wall,这是一个纯vue响应式砌体实现,无需直接进行dom操纵,对ssr友好并带有延迟附加。 我之所以创建它,是因为其他库不支持SSR,并且我需要一个纯粹的vue实现。 实时演示:图像和源...

    掌握Ajax系列6:建立基于DOM的Web应用程序

    本系列的上一篇文章中考察了文档对象模型(DOM)编程中涉及到的概念——Web浏览器如何把网页看作一棵树,现在您应该理解了DOM中使用的编程结构。本期教程将把这些知识用于实践,建立一个简单的包含一些特殊效果的Web...

    JavaScript-DOM---Interactive-and-Dynamic-[removed]JavaScript DOM的代码存储库-交互式和动态JavaScript,由Packt发布

    在本课程中,您将学习如何使用JavaScript使网页动态和交互式,以与文档对象模型连接以及影响和操纵页面元素。 文档对象模型是一个庞大的对象,代表您的页面元素及其属性。 JavaScript可以轻松地在DOM中选择对象,并...

    精通JavaScript(文档对象模型和事件驱动——window对象)

    为了能够操纵浏览器和文档,JavaScript使用分层的父对象和子对象,这就是“文档对象模型”。这些对象的组织类似一个树型结构,并表示一个Web文档的所有内容和组件。 注意:”文档对象模型”不是JavaScript语言的一...

    Webstrates:Webstrates是一个研究原型,可通过DOM操纵进行网站的协作编辑

    页面的文档对象模型(DOM)的更改将保留,并使用通过进行的同步到同一页面的所有连接的客户端。 Webstrates可用于开发交互式软件,其中协作支持是规范而非例外。 转到以开始使用Webstrates,以获取用户指南和开发...

    jquery操纵dom

    它提供一种简便的JavaScript设计模式, 优化HTML文档操作、事件处理、动画设计和Ajax交互。虽然现在的Vue、react框架风靡世界,但是目前也有不少的jQuery的开发者坚持使用jQuery。本课程主要是jQuery实战,主要讲解...

Global site tag (gtag.js) - Google Analytics