现在的位置: 首页 > 综合 > 正文

js中加载并解析xml文件, 动态添加标签,控件

2013年10月31日 ⁄ 综合 ⁄ 共 2188字 ⁄ 字号 评论关闭

js中加载一个xml文件,并获得该xml文件的根元素document:

 

function loadxml(xmlFile)
{
 var xmlDoc;
    if(window.ActiveXObject)
    {
        xmlDoc    = new ActiveXObject('Microsoft.XMLDOM');
        xmlDoc.async    = false;
        xmlDoc.load(xmlFile);
    }
    else if (document.implementation&&document.implementation.createDocument)
    {
        xmlDoc    = document.implementation.createDocument("","",null);
        xmlDoc.load(xmlFile);
    }
    else
    {
        return null;
    }
   
    return xmlDoc;

}

得到document元素,就可以用下属方法获得该xml文件的各个节点,属性:

document方法:
getElementById(id)                            返回指定结点的引用
getElementsByTagName(name)       返回文档中所有匹配的元素的集合
createElement(name)                         创建指定类型的新结点
createTextNode(text)                         创建一个纯文本结点

element方法:
getAttribute(id)                                   返回指定属性的值
setAttribute(id,value)                         给属性赋值
removeAttribute(id)                           移除指定属性和它的值
getElementsByTagName(name)       返回结点内所有匹配的元素的集合

node方法:
appendChild(child)                             给指定结点添加一个新的子结点
removeChild(child)                             移除指定结点的子结点
replaceChild(newChild,oldChild)       替换指定结点的子结点
insertBefore(newChild,refChild)       在同一层级的结点前面插入新结点
hasChildNodes()                                 如果结点有子结点则返回true

node属性:
nodeName                                         以字符串的格式存放结点的名称
nodeType                                           以整型数据格式存放结点的类型
nodeValue                                          以可用的格式存放结点的值
parentNode                                        指向结点的父结点的引用
childNodes                                         指向子结点的引用的集合
firstChild                                            指向子结点结合中的第一个子结点的引用
lastChild                                             指向子结点结合中的最后一个子结点的引用

 

 

动态创建table时先在table标签内加一个tbody标签,然后向tbody标签中添加tr,td。这样才能动态显示出来,若直接在table 标签中加tr,td,则不能显示(我用的IEl浏览器,是这样的)。后来发现:

 

实际上,加上tbody是符合html标准的做法。
只是他并不常用了。

tbody,顾名思义,就是table的主体。一般的表格内容都默认放在了
tbody当中。当浏览器解析到tbody标签的时候,就会马上显示表格。

这尤其是对于一些长表格很有用。这可以让浏览器在较短时间把table显示。
而不需要等到</table>的下载。

而且,在dom当中,即使你没有写tbody, 浏览器默认会把所有的内容
放在它里面。有一次,我就是忽略了这点,检查了好久都看不出来

 

给标签控件动态添加事件,可在js中先获得该控件,然后给它的对应事件赋值:如

<script language="javascript">

document.getElementById("button1").onclick=changevalue;

 

function changevalue()

{

.........

}

</script>

 

 

【上篇】
【下篇】

抱歉!评论已关闭.