似乎有很多方法可以做到这一点,但是,它们都没有对我有意义。如果有人能给我一个例子来说明如何添加一个标签并编辑它的属性(没有document.write mess),它适用于所有常见的浏览器 BUT IE,那就太棒了。
编辑
我根本不在乎它是否适用于IE。如果确实如此,那很好,但我不喜欢IE,无论如何我只会要求人们更改浏览器,因为我正在创建的页面上的其他内容在IE中不起作用。
答案 0 :(得分:3)
以下是如何创建<div>
元素并将其添加到布局的最简单示例。
var el = document.createElement("div"); // creating element
el.setAttribute("class", "myClass"); // setting attribute "class"
el.innerHTML = "Text"; // adding text inside the element
document.body.appendChild(el); // appending new element to page body
DEMO: http://jsfiddle.net/XVaqY/
要使它在IE中不起作用,请添加任何浏览器检查。某事like that:
function isIE() {
return (navigator.appName == "Microsoft Internet Explorer");
}
答案 1 :(得分:0)
以下是使用javascript添加DIV的工作示例
<html>
<head>
<title>Javascript Create Div Element Dynamically</title>
<style type="text/css">
.dynamicDiv {
width: 200px;
height: 100px;
border: solid 1px #c0c0c0;
background-color: #e1e1e1;
font-size: 11px;
font-family: verdana;
color: #000;
padding: 5px;
}
</style>
<script type="text/javascript" language="javascript">
function createDiv() {
var divTag = document.createElement("div");
divTag.id = "div1";
divTag.setAttribute("align", "center");
divTag.style.margin = "0px auto";
divTag.className = "dynamicDiv";
divTag.innerHTML = "This HTML Div tag created "
+ "using Javascript DOM dynamically.";
document.body.appendChild(divTag);
}
</script>
</head>
<body>
<p align="center">
<b>Click this button to create div element dynamically:</b>
<input id="btn1"
type="button"
value="create div"
onclick="createDiv();" />
</p>
</body>
</html>
答案 2 :(得分:0)
首先,使用document.createElement()
创建元素并将其保存到变量中。此时它尚未在DOM中。
然后,根据需要更改其属性,然后在您喜欢的任何位置将其插入DOM。在我的示例中,它会在DIV
标记的末尾插入id
elementid
个body
元素。
var newDiv = document.createElement("div");
newDiv.id = "elementid";
document.body.appendChild(newDiv);
答案 3 :(得分:0)
以下是向DOM添加内容的几种方法:
使用W3C推荐的方法:
var heading = document.createElement("h1");
heading.createTextNode("Foobar");
heading.className = "semantic-class-name-goes-here";
heading.setAttribute("aria-something-here", "bar");
使用innerHTML:
document
.innerHTML("<h1 class='semantic-class-name-goes-here' aria-something-here='bar'>Foobar</h1>");
使用jQuery:
var heading = $("h1")
.addClass("semantic-class-name-goes-here")
.attr("aria-something-here", "bar");
$(document).append(heading);
答案 4 :(得分:0)
假设你要排除所有IE版本,可以使用webreflection blog中的这个技巧
if (!(!+"\v1")) {
var el = document.createElement("div");
...
document.body.appendChild(el);
}
或者,检测IE的另一个条件也可能是
if (!top.execScript) { ... }
甚至
var isIE = /*@cc_on!@*/!1;
if (isIE) { ... }
但是说实话,他们对我来说太苛刻了
无论如何,如果你指定排除IE的技术原因,并告诉我们你想要完成什么样的功能,可能有可能根据特定的IE限制为你提供更安全的方法来完成这项任务(功能优于浏览器嗅探)。