题目一: 动态生成超链接
已知页面上有一个按钮名称为“生成超链接”,要求点击该按钮后,
在ID为“oDiv_createLink”的DIV标签内显示一个超链接
其中超链接的名称为“无优脚本”,链接地址为“http://www.51js.com”
假设按钮的on
<BUTTON id="oBtn_createLink" on
function createLink() {
oDiv_createLink.innerHTML='<a href="http://www.51js.com">无优脚本</a>'
}
题目二: 显示当前时间
已知页面上有一个按钮名称为“显示当前时间”,要求点击该按钮后,
在ID为“oDiv_showCurrTime”的DIV标签内显示一个当前时间,要求精确到秒,并且每秒刷新一次
假设按钮的on
注意:要求所有代码都必须在该函数内
<BUTTON id="oBtn_showCurrTime" on
function showCurrTime() {
setInterval('oDiv_showCurrTime.innerText=new Date().toLocaleString()',1000)
}
题目三: 限制文本框的输入
已知页面上有一个文本输入框,要求只能输入数字,并且长度不超过10
注意:必须允许使用左右键和回退键、删除键以清除输入
假设输入框的on
<INPUT id="oText_disableKey" on
function disableKey() {
if(event.keyCode<48||event.keyCode>57)
event.returnValue = false
}
题目四: 求表达式的值
已知有一表达式为 (Field(fld0) + Field(fld1)) * (Field(fld2) - Field(fld1))
其中 Field 是取变量值的声明,例如 Field(fld0) 表示取 fld0 的值
请设计一个函数,输入参数为表达式的字符串以及存储变量的对象,要求返回表达式的值
假设已有如下代码,声明了表达式以及变量的值,并且计算的函数为calculate,请写出该函数的内容
var expr
var record = new Object();
record.fld0 = 2;
record.fld1 = 4;
record.fld2 = 6;
function calculate(exp, rec) {
var str = exp;
for (var i in rec) {
var reg = new RegExp("Field\\(" + i + "\\)", "g");
str = str.replace(reg, rec[i]);
}
return ev
}
题目五: 解析XML并生成表格
已知页面上有一个ID为“oXmlData”的XML数据岛,内容如下:
<XML ID="oXmlData">
<tab>
<row>
<col name="Col1"/>
<col name="Col2"/>
<col name="Col3"/>
</row>
<row>
<col name="Col4"/>
<col name="Col5"/>
<col name="Col6"/>
</row>
<row>
<col name="Col7"/>
<col name="Col8"/>
<col name="Col9"/>
</row>
</tab>
</XML>
要求点击“生成XML表格”的按钮后,在ID为“oDiv_createXmlTable”的DIV标签内显示一个表格,其内容是XML的数据
如下所示,表格的内容应显示为:
Col1 Col2 Col3
Col4 Col5 Col6
Col7 Col8 Col9
请写出读取XML内容,并生成表格的函数,假设该函数名为createXmlTable,请写出该函数的内容
function createXmlTable() {
var oTable = document.createElement("TABLE");
var oTBody = document.createElement("TBODY");
var tabNode = oXmlData.XMLDocument.childNodes(0);
for (var i = 0; i < tabNode.childNodes.length; i++) {
var rowNode = tabNode.childNodes(i);
var oTR = document.createElement("TR");
for (var j = 0; j < rowNode.childNodes.length; j++) {
var colNode = rowNode.childNodes(j);
var oTD = document.createElement("TD");
oTD.innerText = colNode.getAttribute("name");
oTR.appendChild(oTD);
}
oTBody.appendChild(oTR);
}
oTable.appendChild(oTBody);
oDiv_createXmlTable.appendChild(oTable);
}
题目六: 助记码输入框的实现
已知页面上有一个文本输入框,要求输入助记码后,在离开输入框时自动填充匹配的内容
例如:深圳、珠海、沈阳的助记码分别为 sz、zh、sy
当输入“sz”时,输入框显示“深圳”
当输入“s”时,在紧贴输入框的右边显示下拉选择框,提供可选的输入:深圳、沈阳,选择完后,下拉框消失
假设输入框的on
假设已有存储助记码对象的声明
var oShortcut = { sz:"深圳", zh:"珠海", sy:"沈阳" }
function shortcutCode() {
}
<INPUT id="oText_shortcutCode" on
function shortcutCode() {
var oText = event.srcElement, text = oText.value, aOpts = [];
for (var i in oShortcut) {
if (i == text) {
oText.value = oShortcut[i];
return;
}
if (i.indexOf(text) != -1)
aOpts[aOpts.length] = oShortcut[i];
}
if (aOpts.length > 0) {
var oSelect = document.createElement("SELECT");
var ss = oSelect.style;
ss.position = "absolute";
ss.top = oText.offsetTop;
ss.left = oText.offsetLeft + oText.offsetWidth;
for (i = 0; i <= aOpts.length; i++) {
var oOption = document.createElement("OPTION");
oOption.text = i == 0 ? "" : aOpts[i-1];
oOption.value = oOption.text;
oSelect.add(oOption);
}
oSelect.oText = oText;
oSelect.on
document.body.appendChild(oSelect);
}
}