<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>实践题 - 选项卡</title>
<style type="text/css">
/* CSS样式制作 */
ul {
margin: 0;
list-style-type: none;
padding-left: 0;
display: flex;
width: 400px;
.li0 {
border: 1px #ccc solid;
padding: 5px 10px;
margin: 0 3px;
border-bottom: 0;
cursor: pointer;
}
.li1 {
border-bottom: 4px #fff solid;
border-top: 2px red solid;
background: #fff;
z-index: 100;
}
}
div {
width: 400px;
height: 180px;
border: 1px solid blue;
border-top: 2px solid red;
position: absolute;
top: 43px;
padding: 0 10px;
}
.div0 {
display: none;
}
.div1 {
display: black;
}
</style>
</head>
<body>
<ul>
<li class="li0">房产</li>
<li class="li0">家居</li>
<li class="li0">二手房</li>
</ul>
<div class="div0">
<p>275万购昌平邻铁三居 总价20万买一居</p>
<p>200万内购五环三居 140万安家东三环</p>
<p>北京首现零首付楼盘 53万购东5环50平</p>
<p>京楼盘直降5000 中信府 公园楼王现房</p>
</div>
<div class="div0">
<p>40平出租屋大改造 美少女的混搭小窝</p>
<p>经典清新简欧爱家 90平老房焕发新生</p>
<p>新中式的酷色温情 66平撞色活泼家居</p>
<p>瓷砖就像选好老婆 卫生间烟道的设计</p>
</div>
<div class="div0">
<p>通州豪华3居260万 二环稀缺2居250w甩</p>
<p>西3环通透2居290万 130万2居限量抢购</p>
<p>黄城根小学学区仅260万 121平70万抛!</p>
<p>独家别墅280万 苏州桥2居优惠价248万</p>
</div>
<script type="text/javascript">
var lis = document.getElementsByTagName('li');
var ds = document.getElementsByTagName('div');
lis[0].className = "li0 li1";
ds[0].className = "div1";
for (let q = 0; q < lis.length; q++) {
// 为每个<li>元素添加点击事件
lis[q].onclick = function () {
for (let i = 0; i < lis.length; i++) {
if (lis[i] != lis[q]) {
lis[i].className = "li0";
ds[i].className = "div0";
} else {
ds[i].className = 'div1';
lis[i].className = "li0 li1";
}
}
};
}
</script>
</body>
</html>
<!DOCTYPE HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=bgk" />
<title>流程控制语句</title>
<script type="text/javascript">
var infos= [ ["小A","女",21,"大一"], ["小B","男",23,"大三"],
["小C","男",24,"大四"], ["小D","女",21,"大一"],
["小E","女",22,"大四"], ["小F","男",21,"大一"],
["小G","女",22,"大二"], ["小H","女",20,"大三"],
["小I","女",20,"大一"], ["小J","男",20,"大三"]];
//第一步把之前的数据写成一个数组的形式,定义变量为 infos
for(var i=0;i<10;i++)
{
for(var j=0;j<4;j++)
{
if (infos[i][j]=="大一")
{ document.write(infos[i][0]+",");
document.write(infos[i][1]+",");
document.write(infos[i][2]+",");
document.write(infos[i][3]+"."+"<br>");
}
}
}
//第一次筛选,找出都是大一的信息
document.write("<br>");
for(var i=0;i<10;i++)
{
for(var j=0;j<4;j++)
{
if (infos[i][j]=="女")
{ document.write(infos[i][0]+",");
document.write(infos[i][1]+",");
document.write(infos[i][2]+",");
document.write(infos[i][3]+"."+"<br>");
}
}
}
//第二次筛选,找出都是女生的信息
</script>
</head>
<body>
</body>
</html>
Object.substring(startPos,stopPos) 开始到结束
Object.split(separator,limit)
limit 代表次数
如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
Object.charAt(index)
index为下标,范围为0~length-1
toUpperCase() 方法来将字符串小写字母转换为大写
toLowerCase() 方法来将字符串大写字母转换为小写
getDay() 返回星期,返回的是0-6的数字,0 表示星期天。如果要返回相对应“星期”
当选中用户文本框内的文字时,触发onselect 事件
continue语句不会直接调到整个循环的后面,而是跳回至条件判断
如果符合特殊条件,退出循环
do{
循环语句
}
while(判断条件)
当判断条件为真,继续循环
if(条件1)
{ 条件1成立时执行的代码}
else if(条件2)
{ 条件2成立时执行的代码}
...else if(条件n)
{ 条件n成立时执行的代码}
else
{ 条件1、2至n不成立时执行的代码}
var myarr = new Array();
for(var i=0;i<3;i++){
myarr[i]=new Array();
for(var j=0;j<6;j++){
myarr[i][j]=i*j; //计算值
}
}
1.var myarray = new Array(66,80,90,77,59);
2.var myarray = [66,80,90,77,59];
var myarray=new Array();
操作符之间的优先级(高到低):
算术操作符 → 比较操作符 → 逻辑操作符 → "="赋值符号
如果同级的运算是按从左到右次序进行,多层括号由里向外。
注意: 如果A为假,A && B为假,不会在执行B; 反之,如果A为真,要由 B 的值来决定 A && B 的值。
注意: 如果A为真,A || B为真,不会在执行B; 反之,如果A为假,要由 B 的值来决定 A || B 的值。
网页卷去的距离与偏移量
我们先来看看下面的图:
scrollLeft:设置或获取位于给定对象左边界与窗口中目前可见内容的最左端之间的距离 ,即左边灰色的内容。
scrollTop:设置或获取位于对象最顶端与窗口中可见内容的最顶端之间的距离 ,即上边灰色的内容。
offsetLeft:获取指定对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置 。
offsetTop:获取指定对象相对于版面或由 offsetParent 属性指定的父坐标的计算顶端位置 。
注意:
1. 区分大小写
2. offsetParent:布局中设置postion属性(Relative、Absolute、fixed)的父容器,从最近的父节点开始,一层层向上找,直到HTML的body。
网页尺寸offsetHeight
offsetHeight和offsetWidth,获取网页内容高度和宽度(包括滚动条等边线,会随窗口的显示大小改变)。
一、值
offsetHeight = clientHeight + 滚动条 + 边框。
二、浏览器兼容性
var w= document.documentElement.offsetWidth || document.body.offsetWidth; var h= document.documentElement.offsetHeight || document.body.offsetHeight;
scrollHeight和scrollWidth,获取网页内容高度和宽度。
一、针对IE、Opera:
scrollHeight 是网页内容实际高度,可以小于 clientHeight。
二、针对NS、FF:
scrollHeight 是网页内容高度,不过最小值是 clientHeight。也就是说网页内容实际高度小于 clientHeight 时,scrollHeight 返回 clientHeight 。
三、浏览器兼容性
var w=document.documentElement.scrollWidth
|| document.body.scrollWidth;
var h=document.documentElement.scrollHeight
|| document.body.scrollHeight;
注意:区分大小写
scrollHeight和scrollWidth还可获取Dom元素中内容实际占用的高度和宽度。
浏览器窗口可视区域大小
获得浏览器窗口的尺寸(浏览器的视口,不包括工具栏和滚动条)的方法:
一、对于IE9+、Chrome、Firefox、Opera 以及 Safari:
• window.innerHeight - 浏览器窗口的内部高度
• window.innerWidth - 浏览器窗口的内部宽度
二、对于 Internet Explorer 8、7、6、5:
• document.documentElement.clientHeight表示HTML文档所在窗口的当前高度。
• document.documentElement.clientWidth表示HTML文档所在窗口的当前宽度。
或者
Document对象的body属性对应HTML文档的<body>标签
• document.body.clientHeight
• document.body.clientWidth
在不同浏览器都实用的 JavaScript 方案:
var w= document.documentElement.clientWidth || document.body.clientWidth;
var h= document.documentElement.clientHeight || document.body.clientHeight;
JavaScript 创建动态页面。事件是可以被 JavaScript 侦测到的行为。 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件。
比如说,当用户单击按钮或者提交表单数据时,就发生一个鼠标单击(onclick)事件,需要浏览器做出处理,返回给用户一个结果。
<!DOCTYPE html>
<html>
<head>
<title> new document </title>
<meta http-equiv="Content-Type" content="text/html; charset=gbk"/>
<script type="text/javascript">
window.onload = function(){
// 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。
var rowNum = document.getElementsByTagName("tr");
for(var i=0;i<=rowNum.length;i++){
bgcChange(rowNum[i]);
/*rowNum[i].onmouseover = function(){
rowNum[i].style.backgroundColor = "#f2f2f2";}
rowNum[i].onmouseout = function(){
rowNum[i].style.backgroundColor = "#fff";
}*/
}
}
function bgcChange(obj)
{
obj.onmouseover=function(){
obj.style.backgroundColor="red";
}
obj.onmouseout=function(){
obj.style.backgroundColor="#fff";
}
}
// 编写一个函数,供添加按钮调用,动态在表格的最后一行添加子节点;
function addrow(){
var m=2;
m++;
var newnode = document.createElement("tr");
var td1 = document.createElement("td");
td1.innerHTML = "xh00"+m;
var td2 = document.createElement("td");
td2.innerHTML = "小雷";
var td3 = document.createElement("td");
td3.innerHTML = "删除";
var tabnode = document.getElementById("table");
tabnode.appendChild(newnode);
newnode.appendChild("td1");
newnode.appendChild("td2");
newnode.appendChild("td3");
var tr = document.getElementsByTagName("tr");
for(var i=0; i<tr.length;i++){
bgcChange(tr[i]);
}
}
// 创建删除函数
function remove(obj){
var t1 = obj.parentNode.parentNode;
t1.parentNode.removeChild(tr);
}
</script>
</head>
<body>
<table border="1" width="50%" id="table">
<tr>
<th>学号</th>
<th>姓名</th>
<th>操作</th>
</tr>
<tr>
<td>xh001</td>
<td>王小明</td>
<td><a href="javascript:;" onclick="remove(this);">删除</a></td> <!--在删除按钮上添加点击事件 -->
</tr>
<tr>
<td>xh002</td>
<td>刘小芳</td>
<td><a href="javascript:remove();" >删除</a></td> <!--在删除按钮上添加点击事件 -->
</tr>
</table>
<input type="button" value="添加一行" onclick="addrow()" /> <!--在添加按钮上添加点击事件 -->
</body>
</html>
<b id="oldnode">JavaScript</b>
var oldnode = document.getElementById("oldnode"); //拿到的是文本结点JavaScript
获取网页对象:var conobj = document.getElementById();
弹框确认:comfirm();
弹框带输入值:prompt();
清楚对象CSS:conobj.removeAttribute();
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>实践题 - 选项卡</title>
<style type="text/css">
/* CSS样式制作 */
*{margin:0;padding:0;font:normal 12px "微软雅黑";color:#000000;}
ul{list-style-type: none;}
a{text-decoration: none;}
#tab-list{
width:275px;
height: 190px;
/* 上下20 左右居中 */
margin:20px auto;
}
#ul1{
border-bottom: 2px solid #8B4513;
height:32px;
}
#ul1 li{
/* 块元素 排位一行 */
display:inline-block;
width: 60px;
line-height: 30px;
text-align: center;
border:1px solid #999;
border-bottom: none;
margin-left: 5px;
}
#ul1 li:hover{
cursor: pointer;
}
#ul1 li.active{
border-top:2px solid #8B4513;
border-bottom:3px solid #FFFFFF;
}
#tab-list div{
border: 1px solid #7396B8;
border-top: none;
}
#tab-list div li{
height: 30px;
line-height: 30px;
text-indent: 8px;
}
.show{display: block;}
.hide{display: none;}
</style>
<script type="text/javascript">
window.onload=function(){
var oul=document.getElementById("ul1");
var nli=oul.getElementsByTagName("li");
var odiv=document.getElementById("tab-list");
var ndiv=odiv.getElementsByTagName("div");
for(var i=0;i<nli.length;i++){
nli[i].index=i;
nli[i].onclick=function(){
for(var m=0;m<nli.length;m++){
nli[m].className="";
}
this.className="active";
for(var j=0;j<ndiv.length;j++){
ndiv[j].className="hide"
}
ndiv[this.index].className="show";
}
}
}
</script>
</head>
<body>
<!-- HTML页面布局 -->
<div id="tab-list">
<ul id="ul1">
<li class="active">房产</li>
<li>家居</li>
<li>二手房</li>
</ul>
<div>
<ul>
<li><a href="javascript:;">275万购昌平邻铁三居 总价20万买一居</a></li>
<li><a href="javascript:;">200万内购五环三居 140万安家东三环</a></li>
<li><a href="javascript:;">北京首现零首付楼盘 53万购东5环50平</a></li>
<li><a href="javascript:;">京楼盘直降5000 中信府 公园楼王现房</a></li>
</ul>
</div>
<div class="hide">
<ul>
<li><a href="javascript:;">40平出租屋大改造 美少女的混搭小窝</a></li>
<li><a href="javascript:;">经典清新简欧爱家 90平老房焕发新生</a></li>
<li><a href="javascript:;">新中式的酷色温情 66平撞色活泼家居</a></li>
<li><a href="javascript:;">瓷砖就像选好老婆 卫生间烟道的设计</a></li>
</ul>
</div>
<div class="hide">
<ul>
<li><a href="javascript:;">通州豪华3居260万 二环稀缺2居250w甩</a></li>
<li><a href="javascript:;">西3环通透2居290万 130万2居限量抢购</a></li>
<li><a href="javascript:;">黄城根小学学区仅260万 121平70万抛!</a></li>
<li><a href="javascript:;">独家别墅280万 苏州桥2居优惠价248万</a></li>
</ul>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title> new document </title>
<meta http-equiv="Content-Type" content="text/html; charset=gbk"/>
<script type="text/javascript">
window.onload = function(){
// 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。
var trArr=document.getElementsByTagName("tr");
for(var i=0;i<trArr.length;i++){
changeColor(trArr[i]);
}
}
function changeColor(obj){
obj.onmouseover=function(){
obj.style.backgroundColor="#f2f2f2";
}
obj.onmouseout=function(){
obj.style.backgroundColor="#fff";
}
}
var num=2;
// 编写一个函数,供添加按钮调用,动态在表格的最后一行添加子节点;
function add(){
num++;
var numNew=num;
if(num<10){
numNew="00"+num;
}else if(num<100){
numNew="0"+num;
}
var tr=document.createElement("tr");
var xh=document.createElement("td");
var mc=document.createElement("td");
var del=document.createElement("td");
xh.innerHTML="xh"+numNew;
mc.innerHTML="第"+num+"个学生";
del.innerHTML='<a href="javascript:;" onclick="del(this)">删除</a>';
tr.appendChild(xh);
tr.appendChild(mc);
tr.appendChild(del);
var parent=document.getElementById("table");
parent.appendChild(tr);
var trArr=document.getElementsByTagName("tr");
for(var i=0;i<trArr.length;i++){
changeColor(trArr[i]);
}
}
// 创建删除函数
function del(obj){
var tr=obj.parentNode.parentNode;
tr.parentNode.removeChild(tr);
}
</script>
</head>
<body>
<table border="1" width="50%" id="table">
<tr>
<th>学号</th>
<th>姓名</th>
<th>操作</th>
</tr>
<tr>
<td>xh001</td>
<td>王小明</td>
<td><a href="javascript:;" onclick="del(this)">删除</a></td> <!--在删除按钮上添加点击事件 -->
</tr>
<tr>
<td>xh002</td>
<td>刘小芳</td>
<td><a href="javascript:;" onclick="del(this);">删除</a></td> <!--在删除按钮上添加点击事件 -->
</tr>
</table>
<input type="button" value="添加一行" onclick="add()" /> <!--在添加按钮上添加点击事件 -->
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<style type="text/css">
.message{
width:200px;
height:100px;
background-color:#CCC;}
</style>
</head>
<body>
<script type="text/javascript">
var element=document.createElement("p");
element.className="message";
var eleTextNode=document.createTextNode("I love JavaScript!");
element.appendChild(eleTextNode);
document.body.appendChild(element);
</script>
</body>
</html>