您的位置:首页 > Web前端 > JavaScript

JavaScript实现自动生成网页元素功能(按钮、文本等)

2015-11-21 10:26 711 查看

创建元素的方法:

  • 1、利用createTextNode()创建一个文本对象
  • 2、利用createElement()创建一个标签对象
  • 3、直接利用容器标签中的一个属性:innerHTML-----本质上改该标签容器中的“html代码”,不是我们认为的对象树的操作

详解代码:

<body>
<input type="button" value="创建并添加节点1" onclick="addNode1()"/>
<input type="button" value="创建并添加节点2" onclick="addNode2()"/>
<input type="button" value="创建并添加节点3" onclick="addNode3()"/>
<input type="button" value="remove节点1 " onclick='removenode()'/>
<input type="button" value="replaceNode节点2替换 " onclick='remove2()'/><!--1替换2,并且1没有保留-->
<input type="button" value="clone替换 " onclick='clone()'/>
<div id="div_id1">这是div模块--</div>
<div id="div_id2">必须好好地学习,这样才能让自己有很好的回报</div>
<div id="div_id3">好好干,加油↖(^ω^)↗</div>
<div id="div_id4">你懂得区域,实验区域</div>
</body>

方式一 :创建文本文档

<span style="font-size:18px;">function addNode1(){
//1利用createTextNode()创建一个文本对象
var text=document.createTextNode("这是修改的,创建的文档");
//2获取div对象
var node1=document.getElementById("div_id1");
//添加成div对象的孩子
node1.appendChild(text);}</span><span style="font-size:24px;">
</span>

方式二:利用createElement()创建一个标签对象

function addNode2(){
//1,利用createElement()创建一个标签对象
var nn=document.createElement("input");
nn.type="button"
nn.value="创建的按钮";
nn.target="_blank";
//2,获得div对象
var node2=document.getElementById("div_id2");
//添加成div对象的孩子
node2.appendChild(nn);
}

方式三:直接利用容器标签中的一个属性:innerHTML-----本质上改该标签容器中的“html代码”,不是我们认为的对象树的操作

function addNode3(){
var mm=document.getElementById("div_id3");
mm.innerHTML="<a href='http://www.baidu.com'><input type='button' value='新建的按钮'></a>";
}
  • 删除节点

使用 removeNode 和 removeChild 从元素上删除子结点两种方法,通常采用第二种方法

function removenode(){
var node =document.getElementById("div_id4");
//   alert(node.nodeName);//DIV
//  自杀式 node.removeNode(true); //removeNode 从文档层次中删除对象。ie可以出现现象,一般不采用自杀式
node.parentNode.removeChild(node);////通过父节点去删除它的孩子,一般常用
alert("aa");
}
  • 替换 没有保留替换的那个
function remove2(){
var node1 =document.getElementById("div_id1");
var node2 =document.getElementById("div_id2");
//   node1.replaceNode(node2);//自杀式不通用
////通过父节点去替换它的孩子:用node1去替换node2
node1.parentNode.replaceChild(node1,node2);//object.replaceChild(oNewNode, oChildNode)
}
  • clone节点
function clone(){
var node1 =document.getElementById("div_id1");
var node2 =document.getElementById("div_id2");
var node1_2=node1.cloneNode(true);//false只能clone基本的,不会clone下面的其他子节点
//克隆一个对象,默认参数为false。参数为true时,连子节点一起克隆
node1.parentNode.replaceChild(node1_2,node2);
}

效果图:

全部的源代码:

<!DOCTYPE html>
<html>
<head>
<title>DOM_operation.html</title>
<style type="text/css">
div{
border:#00f solid 1px;
width:200px;
height:100px;
}
</style>
<script type="text/javascript">
//AAAA 增
//方式一 创建文本文档
function addNode1(){
//1利用createTextNode()创建一个文本对象
var text=document.createTextNode("这是修改的,创建的文档");
//2获取div对象
var node1=document.getElementById("div_id1");
//添加成div对象的孩子
node1.appendChild(text);
}function addNode2(){
//1,利用createElement()创建一个标签对象
var nn=document.createElement("input");
nn.type="button"
nn.value="创建的按钮";
nn.target="_blank";
//2,获得div对象
var node2=document.getElementById("div_id2");
//添加成div对象的孩子
node2.appendChild(nn);
}//直接利用容器标签中的一个属性:innerHTML-----本质上改该标签容器中的“html代码”,不是我们认为的对象树的操作function addNode3(){
var mm=document.getElementById("div_id3");
mm.innerHTML="<a href='http://www.baidu.com'><input type='button' value='新建的按钮'></a>";
}//BBBBBB-------删
//删除节点 使用 removeNode 和 removeChild 从元素上删除子结点两种方法,通常采用第二种方法function removenode(){
var node =document.getElementById("div_id4");
//   alert(node.nodeName);//DIV
//  自杀式 node.removeNode(true); //removeNode 从文档层次中删除对象。ie可以出现现象,一般不采用自杀式
node.parentNode.removeChild(node);////通过父节点去删除它的孩子,一般常用
alert("aa");
}//替换 没有保留替换的那个function remove2(){
var node1 =document.getElementById("div_id1");
var node2 =document.getElementById("div_id2");
//   node1.replaceNode(node2);//自杀式不通用
////通过父节点去替换它的孩子:用node1去替换node2
node1.parentNode.replaceChild(node1,node2);//object.replaceChild(oNewNode, oChildNode)
}function clone(){
var node1 =document.getElementById("div_id1");
var node2 =document.getElementById("div_id2");
var node1_2=node1.cloneNode(true);//false只能clone基本的,不会clone下面的其他子节点
//克隆一个对象,默认参数为false。参数为true时,连子节点一起克隆
node1.parentNode.replaceChild(node1_2,node2);
}
</script>
</head>
<body>
<input type="button" value="创建并添加节点1" onclick="addNode1()"/>
<input type="button" value="创建并添加节点2" onclick="addNode2()"/>
<input type="button" value="创建并添加节点3" onclick="addNode3()"/>
<input type="button" value="remove节点1 " onclick='removenode()'/>
<input type="button" value="replaceNode节点2替换 " onclick='remove2()'/><!--1替换2,并且1没有保留-->
<input type="button" value="clone替换 " onclick='clone()'/>
<div id="div_id1">这是div模块--</div>
<div id="div_id2">必须好好地学习,这样才能让自己有很好的回报</div>
<div id="div_id3">好好干,加油↖(^ω^)↗</div>
<div id="div_id4">你懂得区域,实验区域</div>
</body>
</html> 

以上就是为大家分享如何通过JavaScript实现自动生成网页元素功能的方法,希望对大家的学习有所帮助。

您可能感兴趣的文章:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript 网页元素