62.表格排序
描述
系统会在tbody中随机生成一份产品信息表单,如html所示。
请完成 sort 函数,根据参数的要求对表单所有行进行重新排序。
1、type为id、price或者sales,分别对应第1 ~ 3列
2、order为asc或者desc,asc表示升序,desc为降序
3、例如 sort(‘price’, ‘asc’) 表示按照price列从低到高排序
4、所有表格内容均为数字,每一列数字均不会重复
5、不要使用第三方插件
function sort(type, order) {
var index=0
if(type==='id') index=0
else if(type==='price') index=1
else if(type==='sales') index=2
//获取父元素,每行的元素
var jsList = document.getElementById("jsList");
var trs = jsList.getElementsByTagName('tr');
// slice浅拷贝,返回一个新数组
var arrTrs = Array.prototype.slice.apply(trs)
//排序数组
arrTrs.sort(function(val1,val2){
var td1 = val1.getElementsByTagName('td')[index].innerHTML;
var td2 = val2.getElementsByTagName('td')[index].innerHTML;
//升序排序
if(order == "asc"){
return td1-td2;
}
//降序排序
if(order == "desc"){
return td2-td1;
}
});
//添加元素
for(var i=0; i<arrTrs.length; i++){
jsList.appendChild(arrTrs[i]);
}
}
63.替换链接
描述
页面中存在id=jsContainer的DOM元素。
该DOM元素内会给出一段随机文本,可能包含一些链接,比如https://www.baidu.com,或者 www.baidu.com?from=onlineExam,如果出现链接文本,请给该链接文本加上链接标签,用户点击后能直接在新窗口中打开该链接。
请完成 link 函数,完成该功能
1、container只有纯文本内容,不包含其他dom元素
2、识别所有以http://、https://或者www.开始的链接
3、所有www.开头的链接,默认使用 http 协议
4、所有链接在新窗口打开
function link() {
var t=document.getElementById('jsContainer')
var reg=/(https?:\/\/)?(www\.\w+(\.(com|cn))*([?]\w+=\w*(&\w+=\w*)*)?(#\w+)?)/g
var textArr=[]
textArr=t.innerHTML.match(reg)?Array.from(t.innerHTML.match(reg)):[]
textArr.forEach(item=>{
if(item.indexOf('www.')===0){
t.innerHTML=t.innerHTML.replace(item,`<a href="http://${
item}" target="_blank">${
item}</a>`)
}
else{
t.innerHTML=t.innerHTML.replace(item,`<a href="${
item}" target="_blank">${
item}</a>`)
}
})
}
64.倒计时
描述
倒计时是web开发中常见的组件,请完成second和render两个函数,完成倒计时的显示部分
1、second函数的输入为整数,返回{day: Int, hour: Int, min: Int, second: Int}
2、render函数的输入为second函数的输出,将数据在页面对应的DOM元素上显示出来,格式如html所示
3、如果day为0,隐藏对应的DOM元素,否则显示(请直接使用已经实现的css代码)
4、数值不足两位,前面补充0
function second(second) {
let sec=1
let minute=60*sec
let hour=60*minute
let day=24*hour
let obj={
day:parseInt(second/day),
hour:parseInt(second%day/hour),
min:parseInt(second%hour/minute),
second:second%minute
}
return obj
}
function render(data) {
function len2(d){
d='00'+d //此时d 001:000:001
return d[d.length-2]+d[d.length-1]
}
let ids=document.querySelector('#jsCountdown')
let html=`
<span class="${
data.day == 0 ? 'hide':''}">${
len2(data.day)}天</span>
<span>${
len2(data.hour)}:</span>
<span>${
len2(data.min)}:</span>
<span>${
len2(data.second)}</span>
`
ids.innerHTML=html
}
66.双色球机选一注
描述
双色球由33个红球和16个蓝球组成,1注双色球包括6个不重复的红球和1个蓝球。
请阅读给出的页面和代码,完成 randomFn 函数,实现“随机一注”功能,要求如下:
函数返回:
1.以字符串形式输出“随机一注”结果,选中的红蓝球用"|“隔开,红球在前,号码间用半角逗号隔开,如"06,10,13,18,23,27|05”
2.红球和蓝球号码排列顺序 需与页面展示的顺序对应
页面交互:
1.将选中的红球和蓝球(页面中对应DOM元素)用class="active"高亮
2.将选中的球按号码从小到大排列,移至所属组的前方,结果如示意图所示
3.每次执行 randomFn 函数,输出符合要求且不完全重复
randomFn();
function randomFn() {
return selectBall('red', 6) + '|' + selectBall('blue', 1);
}
function selectBall(color, n) {
var wrap = document.