<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function replace() {
var myvalue1 = document.getElementById("tag").value;
var myvalue2 = document.getElementById("txt").value;
var myp=document.getElementById("lvye");
var e=document.createElement(myvalue1);
var t=document.createTextNode(myvalue2);
e.appendChild(t);
document.replaceChild(e,myp);
}
</script>
</head>
<body>
<p id="lvye">慕课网</p>
<hr />
输入标签:<input id="tag" type="text"/><br />
输入文本:<input id="txt" type="text"/><br />
<input type="button" value="替换" onclick="replace()" />
</body>
</html>
document.getElementById("tag")返回的是一个Element节点,这个节点的value的值如果用document.getElementById("tag").value来得到的话是个null,如过想获得input里面的值,需要用document.getElementById("tag").firstChild.value,即它的第一个子节点的值才是你在text框里输入的值
我也是在你的基础上改的,你好像没搞明白父子节点的关系和替换关系
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function replace() {
var myvalue1 = document.getElementById("tag").value;
var myid1=document.getElementById("tag");
var myvalue2 = document.getElementById("txt").value;
var myid2=document.getElementById("txt");
var myp=document.getElementById("lvye");
var newnode1=document.createElement("input");
newnode1.value=myvalue2;
var newnode2=document.createElement("input");
newnode2.value=myvalue1;
myp.parentNode.replaceChild(newnode1,myid1);
myp.parentNode.replaceChild(newnode2,myid2);
}
</script>
</head>
<body>
<p id="lvye">慕课网</p>
<hr />
输入标签:<input id="tag" type="text"/><br />
输入文本:<input id="txt" type="text"/><br />
<input type="button" value="替换" onclick="replace()" />
</body>
</html>