以文本方式查看主题 - ╋艺 镇╋ (http://zyzsky.com/bbs/index.asp) -- ┣◇网站建设&Web语言 (http://zyzsky.com/bbs/list.asp?boardid=4) ---- JavaScript:createElement(转载) (http://zyzsky.com/bbs/dispbbs.asp?boardid=4&id=2324) |
-- 作者:乐魔舞 -- 发布时间:2010/9/28 10:39:02 -- JavaScript:createElement(转载) createElement 创建 HTML 元素,在 IE4.0 中只能创建 img、area、option,不过在 IE5 中,我们可以创建除 frame、iframe 以外的所有元素。 语法: oElement = document.createElement(sTag) sTag 要创建的元素名字,如:img、select、input,字符串类型。 返回值:返回新元素的引用。 创建之后: 创建之后,我们可利用 insertBefore 或 appendChild 将元素显示在页面中。 <div id="board"></div> <script type="text/javascript"> <!-- var board = document.getElementById("board"); var e = document.createElement("select"); var obj = board.appendChild(e); --> </script> 上例中,创建一个下拉列表框,并追加到层 board 中。 创建元素后,可对元素进行进一步操作。 <div id="board"></div> <script type="text/javascript"> <!-- var board = document.getElementById("board"); var e = document.createElement("select"); var obj = board.appendChild(e); obj.options[0] = new Option("追加的项", ""); obj.size = 2; //如下写法也是正确的: //e.options[0] = new Option("追加的项", ""); //e.size = 2; --> </script> 创建 input 与 input 有关的元素有很多,比如:checkbox、radio、submit、reset...,因此创建 input 是个很特殊的用法。 创建不同的 input 正确的做法是: <div id="board"></div> <script type="text/javascript"> <!-- var board = document.getElementById("board"); var e = document.createElement("input"); e.type = "radio"; //紧接着上一行写 var obj = board.appendChild(e); obj.checked = true; //如下写法也是正确的: //e.checked = true; --> </script> 针对 input,在 Netscape、Opera 和 Firefox 中 e.type 既可以在 appendChild 之前,也可以在其之后。但在 IE 中 type 属性必须在前,其它属性必须在后。 IE 创建元素,还有一个特点,就是可以连同属性一同创建,比如:var e = document.createElement("<input type=\'\'radio\'\' name=\'\'r\'\' value=\'\'1\'\' />"); 这在其它浏览器中是不行的,所以我们也不支持。 总结: 针对非 input 元素,各浏览器中,既可以把对元素属性的改变写在显示元素(insertBefore 或 appendChild)之前,也可以在其后。 针对 input 元素,为了兼容 IE,type 属性写在显示元素(insertBefore 或 appendChild)之前,其它属性写在其后。 推荐: 除了 input 元素的 type 属性写在显示元素(insertBefore 或 appendChild)之前外,其它属性都写在显示元素之后。 改变属性时,对写在显示元素(insertBefore 或 appendChild)之前的用 createElement 的返回值,对写在显示元素之后的用 insertBefore 或 appendChild 的返回值。 文章出处:http://www.diybl.com/course/1_web/javascript/jsjs/200838/103449.html |