如何在Html中动态添加控件。

yohomonkey 2003-07-18 05:10:38
比如页面中已有buttom控件,
现在想点击button后在
指定的控件后面写入另外的控件。
用writeln如何不覆盖原来的控件?
...全文
137 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yohomonkey 2003-07-22
  • 打赏
  • 举报
回复
谢谢各位!
结贴。
yanfeng 2003-07-18
  • 打赏
  • 举报
回复
这段代码是我以前做的一个单页面四则运算页面,一定能够满足你的要求
<html>

<head>
<script language="JavaScript">
var Arya = new Array(); //用于记录被运算数
var Aryfuhao= new Array(); //用于记录运算符号
var Aryb = new Array(); //用于记录运算数
var AryZhenQue = new Array(); //用于记录应该正确的结果
var AryJieGuo=new Array(); //用于记录学生填写结果
var a,b,c,i,jieguo;
var fuhao; //用于标志+,-,*,/

function ChuShi() //此函数用于初试化题目
{
i=1;
form1.DoResult.focus();
document.all.no1.innerHTML="第" + i + "条:";
Arya[i]=a=Math.floor(Math.random( )*100); //产生0--99的随机数
Aryb[i]=b=Math.floor(Math.random( )*100);
fuhao=Math.floor(Math.random( )*4); //产生0--3的随机数
document.all.no2.innerHTML=a;
switch(fuhao)
{
case 0: Aryfuhao[i]=document.all.no3.innerHTML="+";AryZhenQue[i]=a+b;break;
case 1: Aryfuhao[i]=document.all.no3.innerHTML="-";AryZhenQue[i]=a-b;break;
case 2: Aryfuhao[i]=document.all.no3.innerHTML="×";AryZhenQue[i]=a*b;break;
case 3: Aryfuhao[i]=document.all.no3.innerHTML="÷";AryZhenQue[i]=Math.round(a/b);break;
default :alert("error!");
}
document.all.no4.innerHTML=b;
document.all.no5.innerHTML="=";
}
//该函数用于记录上一题的相应情况,并且出下一题,响应页面中的"下一题"按钮
function DoNext()
{
var tmpJieGuo;
tmpJieGuo=form1.DoResult.value;
form1.DoResult.value="";form1.DoResult.focus();
if(isNaN(tmpJieGuo)||tmpJieGuo=="") alert("你输入的结果必须是整数形式");
else
{
AryJieGuo[i]=parseInt(tmpJieGuo); //parseInt()返回由字符串转换得到的整数
i++; //接着显示下一题
document.all.no1.innerHTML="第" + i + "条:";
Arya[i]=a=Math.floor(Math.random( )*100); //产生0--99的随机数
Aryb[i]=b=Math.floor(Math.random( )*100);
fuhao=Math.floor(Math.random( )*4); //产生0--3的随机数
document.all.no2.innerHTML=a;
switch(fuhao)
{
case 0: Aryfuhao[i]=document.all.no3.innerHTML="+";AryZhenQue[i]=a+b;break;
case 1: Aryfuhao[i]=document.all.no3.innerHTML="-";AryZhenQue[i]=a-b;break;
case 2: Aryfuhao[i]=document.all.no3.innerHTML="×";AryZhenQue[i]=a*b;break;
case 3: Aryfuhao[i]=document.all.no3.innerHTML="÷";AryZhenQue[i]=Math.round(a/b);break;
default :alert("error!");
}
document.all.no4.innerHTML=b;
document.all.no5.innerHTML="=";
}
}
//该函数用于显示和统计学生所有做的题目,和停留时间,响应页面中的"查看成绩"按钮
function Achievement()
{
var numAll,strOver,numRight,DeFeng,strGuLi;
numAll=AryJieGuo.length;numRight=0;
strOver="<table width='80%' border='0' align='center' cellpadding=0 cellspacing=3>";
strOver+="<tr bgcolor='#FFCC00' align=center><td>标题</td><td colspan=4 align=center>题目</td><td>正确答案</td><td>你的答案</td></tr>"
for(i=1;i<=numAll-1;i++)
{
if(AryJieGuo[i]==AryZhenQue[i]) numRight++;
strOver+="<tr><td align=center>第" + i + "条:" + "</td><td>" + Arya[i]
strOver+="</td><td align=center>" + Aryfuhao[i] +"</td><td>"+ Aryb[i]
strOver+="</td><td align=center>=</td><td align=center>" + AryZhenQue[i] + "</td><td align=center>"+ AryJieGuo[i] +"</td></tr>"
}
strOver+="</table>";
i--; DeFeng=Math.floor((numRight/i)*100);
strOver+="<p align=center>一共做" + i + "题   做对:" + numRight + "题   得分:" + DeFeng ;
if(DeFeng<=20) strGuLi="蠢的没药救了,算了还是回家睡觉吧!";
if(DeFeng>20 && DeFeng<50) strGuLi="白(白痴)的一塌,就知道玩!!";
if(DeFeng>=50 && DeFeng<60) strGuLi="蠢的还有救,继续努力";
if(DeFeng>=60 && DeFeng<70) strGuLi="一身冷汗!回家不会挨骂了";
if(DeFeng>=70 && DeFeng<90) strGuLi="乖孩子,再考好点给你糖吃";
if(DeFeng>=90) strGuLi="哇!天才,快赶上当年的我了";
document.all.over1.innerHTML=strOver + "<br><font color=#FF6600>" + strGuLi + "</font></p>";
document.all.btnDo.innerHTML="<input type='button' value='继续做题' onClick=window.location.reload()>"
}
</script>

</script>

<meta http-equiv="Content-Type"
content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<title>四则运算</title>
<style type="text/css">
<!--
A:link {text-decoration: none;}
A:visited {text-decoration: none;}
A:hover {text-decoration: underline;}
-->
</style>
<bgsound src="yuyun6R.mid" loop="-1">
</head>

<body onLoad="startclock();startClock1();ChuShi()" background="sybermark-back.gif" bgcolor="#FFFFFF" link="#0000FF" vlink="#0000FF" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><img src="sybermark-temp.gif" width="737" height="164"></td>
</tr>
<tr>
<td><table border="0">
<tr>

<td width="119" height="28" align="center" valign="top">
<p> </p>
</td>

<td valign="top" width="539"><center>
<div align="center">
<form name="clock">
<div style="font-size: 14pt;color:#FF6600;">现在时间:<input name="thetime" size="12" style="font-size: 12pt;color:#FF6600;border:0"></div>
</form>
</div>
</center></td>
<td align="center" valign="bottom" width="97"><font
color="#FFFFFF">  </font></td>
</tr>
<tr>

<td height="257"> </td>

<td valign="top">
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="162" valign="top">
<form name="form1" method="post" onSubmit="return false" action="">
<div id="over1">
<div align="center"><font color="#FF6600" size="2">除法运算取四舍五入整数! </font></div>
<table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td id="no1" withd="20%" align="center"></td>
<td id="no2"></td>
<td id="no3"></td>
<td id="no4"></td>
<td id="no5"></td>
<td><input name="DoResult" type="text" id="DoResult" size="6" maxlength="6" style="border-width:1;border-style:solid;border-color:#66CCFF" onMouseOver="this.focus()"></td>
</tr>
</table>
</div>
<p align="center">
<span id="btnDo">
<input type="button" value="下一题" onClick="DoNext()"> 
<input type="button" value="查看成绩" onClick="Achievement()">
</span>
</p>
</form>
</td>
</tr>
</table>
<p align="center"><font size="2"><br>
</font></p>
</td>
<td> </td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
形印声传 2003-07-18
  • 打赏
  • 举报
回复
楼上的才是正解!!!
wsj 2003-07-18
  • 打赏
  • 举报
回复
<script language="javascript">
function clicktt(obj)
{
var o = document.createElement("<a href=\"#\"></a>")
o.innerText = "rrrrq";
//1)
//hh.outerHTML = hh.outerHTML + "<a href=\"#\">rrrrq</a>";
//2) Recommended
hh.insertAdjacentHTML("afterEnd", "<a href=\"#\">rrrrq</a>");
//3)
//hh.insertAdjacentElement("afterEnd", o);
//4)
//document.body.appendChild(o);
//5)
//document.body.insertAdjacentElement("beforeEnd", o);
}
</script>
<BODY>
<input type="button" id="hh" value="Add" onclick="doAdd(this);">
</BODY>
damboo 2003-07-18
  • 打赏
  • 举报
回复
应该可以吧,因为body本身就是一个对象,例如

<script language="javascript">
function clicktt()
{
window.document.body.innerHTML+="<a href=\"#\">rrrr</a>";
alert("click");
}
</script>
<BODY>
<input type="button" id="hh" value="Add" onclick="clicktt();">
</BODY>
yohomonkey 2003-07-18
  • 打赏
  • 举报
回复
如果页面只有一个Button。
没有Font、span、div这些,可以先添加他们在通过他们添加其他的控件吗。
damboo 2003-07-18
  • 打赏
  • 举报
回复
这样改试试

<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script language="javascript">
function clicktt()
{
addHere.innerHTML="<a href=\"#\">rrrr</a>";
alert("click");
}
</script>
</HEAD>

<BODY>
<input type="button" id="hh" value="Add" onclick="clicktt();">
<span id=addHere></span>
</BODY>
</HTML>
yohomonkey 2003-07-18
  • 打赏
  • 举报
回复
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script language="javascript">
function clicktt()
{
document.writeln('<a href=""#"">rrrr</a>');
alert("click");
}
</script>
</HEAD>

<BODY>
<input type="button" id="hh" value="Add" onclick="clicktt();">
</BODY>
</HTML>

但是,写入的控件覆盖了原来的Button。
yohomonkey 2003-07-18
  • 打赏
  • 举报
回复
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script language="javascript">
function clicktt()
{
document.writeln('<a href=""#"">rrrr</a>');
alert("click");
}
</script>
</HEAD>

<BODY>
<input type="button" id="hh" value="Add" onclick="clicktt();">
</BODY>
</HTML>

但是,写入的控件覆盖了原来的Button。
damboo 2003-07-18
  • 打赏
  • 举报
回复
可以用document.write("控件代码")
或者写一个<div id=abc></div>
然后用abc.innerHTML="控件代码";
项目名称:[精仿]360安全卫士-10.30更新(CSkin Demo) 界面库版本号:10.30 最新版本 下载内容: 精仿360安全卫士源码一份, 可引用至工具箱最新版CSkin.dll一份 实现功能: 1.发光标题。 2.直角边框和阴影。 3.360安全卫士主界面模仿。 4.多系统支持,不需要win8系统,即可实现win8风格的360。 5.自定义控件的美化使用。 界面库更新文档: CC2013-10.30 1.由于SkinForm名字太多人使用,界面库命名正式改为CSkin.dll,官网www.cskin.net。 2.SkinTabControl标签添加菜单箭头,可点击展开菜单。 3.SkinTabControl添加标签关闭按钮。 4.修复部分文乱码问题。 5.优化好友列表右键菜单。 6.将窗体自定义系统按钮改为集合模式,可添加无数个自定义系统按钮。自定义系统按钮事件可以 e.参数 来判断。 7.增加360安全卫士-DEMO案例。 8.增加SkinAnimatorImg控件,用于支持位图动画的播放。如360的动态logo。 9.各种细节BUG优化。 CC2013-10.11 1.添加SkinTabControlEx,加入更加自定义的美化属性和动画效果。 2.添加SkinAnimator,通用动画控件。 3.添加Html编辑器控件 4.修复SkinButton图标和文本相对位置的BUG CC2013-9.26 1.优化好友列表CPU占用 2.好友列表加入好友登录平台属性:安卓 苹果 WEBQQ PC 3.优化标题绘制模式,新添标题绘制模式属性。 4.新添标题偏移度属性。 5.加入圆形进度条控件:ProgressIndicator。 CC2013-9.5.2 1.优化截图控件,截图工具栏加入新功能。 2.解决个人信息卡和天气窗体显示后不会消失的问题。 3.各种细节BUG优化。 CC2013-9.5.1 1.解决贴边左右隐藏的BUG。 2.解决窗体点击事件不能触发的问题。 3.优化SkinButton继承父容器背景色的代码。 4.解决SkinButton异常错误。 CC2013-9.3 1.好友列表右键菜单没反应问题。 2.新增美化控件SkinDatagridview。 3.密码软件盘回删不了文字问题。 4.双击窗体最大化,最大化后再双击恢复原大小,(win7)。 5.部分细节调优。 小编:下载不要分,DEMO教你如何熟练使用CSkin界面库美化自己的窗体。 友情链接: http://bbs.csdn.net/topics/390510544 (精仿QQ2013局域通讯) http://download.csdn.net/detail/lyx_520/5710799 (C#实现Win8窗体)
项目名称:高仿QQ2013通讯DEMO-10.30更新 版本号:10.30 最新版本 下载内容: (C#)CC2013局域网通讯源码一份, 可引用至工具箱最新版CSkin.dll-10.30版本界面库一份。 界面库更新说明: CC2013-10.30 1.由于SkinForm名字太多人使用,界面库命名正式改为CSkin.dll,官网www.cskin.net。 2.SkinTabControl标签添加菜单箭头,可点击展开菜单。 3.SkinTabControl添加标签关闭按钮。 4.修复部分文乱码问题。 5.优化好友列表右键菜单。 6.将窗体自定义系统按钮改为集合模式,可添加无数个自定义系统按钮。自定义系统按钮事件可以 e.参数 来判断。 7.增加360安全卫士-DEMO案例。 8.增加SkinAnimatorImg控件,用于支持位图动画的播放。如360的动态logo。 9.各种细节BUG优化。 CC2013-10.11 1.添加SkinTabControlEx,加入更加自定义的美化属性和动画效果。 2.添加SkinAnimator,通用动画控件。 3.添加Html编辑器控件 4.修复SkinButton图标和文本相对位置的BUG CC2013-9.26 1.优化好友列表CPU占用 2.好友列表加入好友登录平台属性:安卓 苹果 WEBQQ PC 3.优化标题绘制模式,新添标题绘制模式属性。 4.新添标题偏移度属性。 5.加入圆形进度条控件:ProgressIndicator。 CC2013-9.5.2 1.优化截图控件,截图工具栏加入新功能。 2.解决个人信息卡和天气窗体显示后不会消失的问题。 3.各种细节BUG优化。 CC2013-9.5.1 1.解决贴边左右隐藏的BUG。 2.解决窗体点击事件不能触发的问题。 3.优化SkinButton继承父容器背景色的代码。 4.解决SkinButton异常错误。 CC2013-9.3 1.好友列表右键菜单没反应问题。 2.新增美化控件SkinDatagridview。 3.密码软件盘回删不了文字问题。 4.双击窗体最大化,最大化后再双击恢复原大小,(win7)。 5.部分细节调优。 实现功能: 1.界面库多达25个自定义换肤控件,让每个控件设设属性就能达到你想要的效果,支持图片换肤和色调绘制。 2.四边阴影,毛边效果,可以设置阴影宽度和阴影颜色,支持所有系统。 3.拥有密码键盘输入,防护更贴心。 4.8种圆角窗体模式供你选择,淋漓尽致,润滑如圆。 5.登录主界面后,有登陆提示窗,提示上次登录的城市和时间。 6.皮肤随心变:拖动任意一张图片至主界面,就可以改变皮肤。 7.皮肤色调获取:改变皮肤的同时,将计算图片色调,再将其运用到窗体背景色。 8.皮肤尾部渐变:上下左右方均可实现,渐变皮肤。 9.皮肤拖拉方向:可以选择皮肤在拉伸的时候,粘着哪一边拖拉。 10.GDI+界面重绘,处理消息机制,3种移动模式和拉伸是否启用只需要设置一个属性的事就可以解决。 11.界面渐变闪现和闪退:不再像平凡的突然出现,采用API渐变机制,渐渐出现和消失,win7系统下还有动态缩小至任务的效果。 12.完美好友列表,可添加上千好友,不卡不掉线,还可以拖动好友到其他分组。 13.好友悬浮至头像可以查看详细资料卡。 14.窗口可调渐变后透明度:让窗体看起来更像是Vista玻璃窗体风格。 15.聊天窗口可发送图片,大文件,表情,还有震动。 16.按钮控件背景色拥有继承窗体背景主色调的功能,让整体色调保持一致。 17.更是有和如出一辙的扣扣截图。仿真度也达到100%,完美修复所有已知BUG。 18.聊天窗口,可以调字体颜色和字体样式等多项功能。 20.SkinLabel与SkinButton控件字体与窗体标题可以根据背景色暗亮度自动调节字体为黑还是白。 21.MessageBox提示框的美化,并继承调用窗口的色调与背景,MessageBox可所谓已达到帅气的不能再帅气的境界了。 22.天气皮肤自动变,所有窗体根据当地天气自动决定皮肤背景,CC最帅气功能之一。 23.个人资料卡及聊天窗体拥有动态CC秀展示。 24.主界面拖动换肤的同时,所关联的子窗体皮肤也会跟着变。 25.多线程大文件传输功能,支持无上限大文件传输,有进度条显示进程度。 26.界面库已封装了大图取主色调,颜色判断暗亮等多项功能。 27.如果你觉得获取天气让你的登录太慢不想要的话,注释相关调用方法即可快速登录。 界面库交流群:306485590 本人QQ:345015918 注意: Demo版不包括更新,为方便用户查看和使用属性等方法,dll只轻微加密。想反编译的就不要尝试了,里面有上百个类,改错改到你哭。 介意购买正版,永久更新配源码。 看截图或者想购买商业版的用户请访问以下地址: http://www.51aspx.com/code/TotalLikeQQ2013 特权:购买商业版的用户,有权利享有最快的更新服务,第一时间将最新版本的dll源码送到你手上。 使本项目源码或本项目生成的DLL前请仔细阅读以下协议内容,如果你同意以下协议才能使用本项目所有的功能,否则如果你违反了以下协议,有可能陷入法律纠纷和赔偿,作者保留追究法律责任的权利。 1、你可以在开发的软件产品使用和修改本项目的源码和DLL,但是请保留所有相关的版权信息。 2、不能将本项目源码与作者的其他项目整合作为一个单独的软件售卖给他人使用。 3、不能传播本项目的源码和DLL,包括上传到网上、拷贝给他人等方式。 4、以上协议暂时定制,由于还不完善,作者保留以后修改协议的权利。 时间:2013-7-5 作者: 乔克斯 请保留以上版权信息,否则作者将保留追究法律责任。

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧