Java复习第一天---Javascript的基本知识点
1、HelloWord:

2、基础语法:

3、嵌入HTML
借助window.onload事件在整个窗体载入完毕之后运行程序代码
4、事件驱动:

5、DOM操作
5、1 查找元素节点
5.1.1 依据id值
方法:document.getElementById(id值) 获取到的是一个元素节点
var bj = document.getElementById("bj");
alert(getText(bj));
5.1.2 依据标签名
方法:document.getElementsByTagName(标签名) 获取到的是指定标签名的一组元素节点
var lis = document.getElementsByTagName("li");
alert(lis.length);
//还有一种使用方法:
var city = document.getElementById("city");
var cities = city.getElementsByTagName("li");
alert("cities="+cities.length);
5.1.3 依据name属性
方法:document.getElementsByName(name值) 获取到的是指定name值的一组元素节点
var genders = document.getElementsByName("gender");
//alert(genders.length);
var nameText = document.getElementsByName("name")[0];
alert(nameText.value);
5.1.4 依据兄弟关系
var android = document.getElementById("android");
var next = android.nextSibling;
alert(getText(next));
var prev = android.previousSibling;
alert(getText(prev));
5.2 操作属性
5.2.1 直接读写
var username = document.getElementById("username");
读取value属性
alert(username.value);
读取type属性
alert(username.type);
读取id属性
alert(username.id);
username.value = "new value";
username.type = "radio";
5.2.2 通过属性节点读写
首先获取属性节点,再通过nodeValue读写其值
var attrNode = username.getAttributeNode("value");
alert(attrNode.nodeValue+"~");
attrNode.nodeValue = "new value ~";
5.3全选全不选的练习:






5.4 获取子节点
5.4.1 推断是否存在子节点
推断一个节点是否有子节点
alert("city:"+city.hasChildNodes());
var br = document.getElementsByTagName("br")[0];
alert("br:"+br.hasChildNodes());
5.4.2 获取所有子节点
var childs = city.childNodes;
W3C:包含空格和换行
IE8:不包含空格和换行
alert(childs.length);
5.4.3 获取第一个子节点
firstChild:通经常使用来获取文本节点,注意IE和W3C标准的差异
var bj = document.getElementById("bj");
var first = city.firstChild;
alert(first);
5.4.4 获取最后一个子节点
var last = city.lastChild;
alert(last);
5.4.5 获取指定标签名的子节点
使用父节点.getElementsByTagName()
var city = document.getElementById("city");
var cities = city.getElementsByTagName("li");
alert(cities.length);
5.5节点的属性:

5.6 获取节点的文本内容
获取文本节点的父节点
var bj = document.getElementById("rl");
父节点.firstChild
var textNode = bj.firstChild;
alert(textNode.nodeName+" "+textNode.nodeType);
文本节点.nodeValue
alert(textNode.nodeValue);
5.7练习2:单击li弹出文本内容
获取所有的li节点
var liNodes = document.getElementsByTagName("li");
//遍历
for(var i = 0; i < liNodes.length; i++){
//绑定单击响应函数
liNodes[i].onclick = function(){
//弹出文本内容
//在事件响应函数中使用this代表当前正在被操作的对象
alert(this.firstChild.nodeValue);
}
}
5.8练习3:单击li显示隐藏“^_^”
正則表達式
258406984@qq.com
aaaabbbaaaa /b{3}/gi
var text = "aabbbaaa";
var reg = /b{3}/g;
//正則表達式对象.test(文本值) 检測文本值是否符合正則表達式中规定的规则,返回布尔值
alert(reg.test(text));
//aabbbaaa aaNNNaaa
//字符串.replace(正則表達式对象,新文本) 将字符串中匹配正則表達式的部分替换为新文本
text = text.replace(reg,"NNN");
alert(text);
var content = "^_^content";
var reg = /^\^_\^/g;
alert("~"+reg.test(content));
alert("content="+content);
content = content.replace(reg,"");
alert("content="+content);
//点击每一个li,若文本值不是以“^_^”开头则加上“^_^”,若是则去除
var liNodes = document.getElementsByTagName("li");
for ( var i = 0; i < liNodes.length; i++) {
liNodes[i].onclick = function() {
var reg = /^\^_\^/g;
var text = this.firstChild.nodeValue;
if (reg.test(text)) {
text = text.replace(reg, "");
} else {
text = "^_^" + text;
}
this.firstChild.nodeValue = text;
}
}
5.9创建节点
将形如<li>广州</li>这样一个节点加入�到#city下面
//1.创建文本节点
//方法:document.createTextNode("文本值")
var textNode = document.createTextNode("广州");
//2.创建li元素节点
//方法:document.createElement("标签名")
var liNewEle = document.createElement("li");
//3.把文本节点加入�进li元素节点,原因是textNode和liNewEle还没有关系
liNewEle.appendChild(textNode);
//4.把填充好的li加入�进#city
var city = document.getElementById("city");
//假设不加入�的话,新创建出来的节点不会出如今页面上,仅仅是存在于当前文档的上下文中
city.appendChild(liNewEle);
5.10练习4:依据用户输入加入�节点
//功能:依据用户输入动态加入�节点
var submitBtn = document.getElementById("submitBtn");
submitBtn.onclick = function(){
//1.获取用户输入
//(1)获取用户选择的类型,假设没有选择就提示
var radios = document.getElementsByName("rType");
var rType = null;
for(var i = 0; i < radios.length; i++){
if(radios[i].checked){
rType = radios[i].value;
}
}
if(rType == null){
alert("请你选择类型");
return false;
}
//(2)获取用户输入的文本,假设没有输入就提示
var liContentIpt = document.getElementsByName("liContent")[0];
//去掉文本框输入内容的前后空格
var liContent = myTrim(liContentIpt.value);
//把处理过的文本内容写回文本框
liContentIpt.value = liContent;
if(liContent == ""){
alert("请您输入内容");
return false;
}
//2.加入�节点
//(1)依据用户选择的类型决定加入�到#city还是#game下面
var ulEle = document.getElementById(rType);
//(2)将用户输入的内容组装成:<li>用户输入的文本值</li>
var textNode = document.createTextNode(liContent);
var liEle = document.createElement("li");
liEle.appendChild(textNode);
//(3)添加
ulEle.appendChild(liEle);
//取消提交button的默认行为 return false
return false;
}
5.11替换节点
var city = document.getElementById("city");
var bj = document.getElementById("bj");
/* var textNode = document.createTextNode("广州");
var liNewEle = document.createElement("li");
liNewEle.appendChild(textNode); */
var rl = document.getElementById("rl");
alert("要换掉啦!");
city.replaceChild(rl,bj);
5.12 插入节点
var city = document.getElementById("phone");
var bj = document.getElementById("android");
var textNode = document.createTextNode("广州");
var liNewEle = document.createElement("li");
liNewEle.appendChild(textNode);
alert("要插入啦!");
city.insertBefore(liNewEle,bj);
function insertAfter(newNode,targetNode){
//1.推断目标节点是不是最后一个子节点:lastChild
//获取targetNode的父节点 获取父节点的方法:节点.parentNode
var parentNode = targetNode.parentNode;
var lastChild = parentNode.lastChild;
if(targetNode == lastChild){
//假设是,则运行父节点.appendChild(newNode)
parentNode.appendChild(newNode);
}else{
//假设不是,则找到目标节点的下一个兄弟节点
var nextSibling = targetNode.nextSibling;
//运行parentNode.insertBefore(newNode,下一个兄弟节点)
parentNode.insertBefore(newNode,nextSibling);
}
}
5.13删除节点
var city = document.getElementById("city");
var bj = document.getElementById("bj");
alert("要删除啦!");
//父节点.removeChild(要删除的节点) 返回一个指向被删除的节点的指针
var delEle = city.removeChild(bj);
alert(delEle.firstChild.nodeValue);
var game = document.getElementById("game");
var gameParent = game.parentNode;
//当删除一个节点时,它以下的子节点也会被一同删除
gameParent.removeChild(game);
5.14innerHTML属性
var city = document.getElementById("city");
alert(city.innerHTML);
city.innerHTML = "<li>淮阴</li>";
(第一天的复习,让我感觉自己要学的东西真的还有非常多非常多,希望每天带着之前实训内容慢慢一点点的复习,水滴石穿,厚积而薄发!!!)
Java复习第一天---Javascript的基本知识点的更多相关文章
- #021 Java复习第一天
上学期在慧河工作室学习简单过java到面向对象就停止了 现在有事情又要用到java发现全忘了..... 快速复习一下 网课PPT 计算机: 硬件 + 软件 主要硬件: cpu :cpu是一个计算机的运 ...
- Java复习第一天
Day01 1.独立编写Hello World程序. public class Test{ public static void main(String[] args){ System.out.pri ...
- 九天学会Java,第一天,变量和数据类型,赋值和输出
用9天入门三门编程语言,有可能嘛,尤其是对没有基础的同学来说?对于想学好的编程的人来说,无论从哪一门语言开始入手,语言的本身其实并不是我们最应该的关心的,至少不是作为一个初学者首先关心的. 网络上,网 ...
- javascript基础入门知识点整理
学习目标: - 掌握编程的基本思维 - 掌握编程的基本语法 typora-copy-images-to: media JavaScript基础 HTML和CSS 京东 课前娱乐 众人皆笑我疯癫,我笑尔 ...
- java复习面向对象(二)
java复习面向对象(二) 1.static关键字 举例图片 静态变量 使用static修饰的成员变量是静态变量 如果一个成员变量使用了关键字static,那么这个变量不属于对象自己,而属于所在的类多 ...
- javascript数组的知识点讲解
javascript数组的知识点讲解 阅读目录 数组的基本方法如下 concat() join() pop() push() reverse() shift() sort() splice() toS ...
- JAVA入门第一季(mooc-笔记)
笔记相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第一季 ...
- Java程序猿的JavaScript学习笔记(3——this/call/apply)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿的JavaScript学习笔记(1——理念)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
随机推荐
- PDF转word文档
本文未对扫描版的PDF实验,但是可编辑PDF版本可以转换为word而且转换后的word是可编辑的. 1.从http://xiazai.zol.com.cn/detail/33/326858.shtml ...
- magento产品导入时需要注意的事项
(1) 必须保证csv文件是utf-8编码的.非utf-8的编码会导致产品导入失败 (2)产品图片 (a) 产品图片必须包含image,image_label,_media_image,_media_ ...
- Redmine开启服务
写了一个启动Redmine的开机脚本,redmine文件在/etc/init.d/下 #!/bin/sh ### BEGIN INIT INFO # Provides: Dean Chen # Req ...
- Win32K里的死循环
引用注明>> [作者:张佩][原文:www.YiiYee.cn/blog] 这是我到新公司后上手的第一个issue.一线project师找到我,说有一个urgent issue有没有兴趣看 ...
- mvc3.0防止跨站点请求伪造(CSRF)攻击
众所周知,asp.net mvc程序在浏览器运行是产生标准的Html标签,包括浏览器要发送的关键数据等内容都在html内容里面.听起来不错,但是假如我们伪造类似的html内容,更改里面的关键数据,在浏 ...
- SQL Server 死锁检查
示例代码 select spid, blocked, status, hostname, program_name, hostprocess, cmd from sysprocesses -- kil ...
- Linux下安装McAfee防病毒软件(企业版本)
最近公司接一个项目虚拟化解决方案,不过所有硬件设备不是我们采购的,我们只是负责软体安装.我看了一下那个硬件设备那叫高,不过目前还到那边去安装,那边硬件还没安装完成,然后Boss给我拿来两台新服务器,让 ...
- 绝对好文C#调用C++DLL传递结构体数组的终极解决方案
C#调用C++DLL传递结构体数组的终极解决方案 时间 2013-09-17 18:40:56 CSDN博客相似文章 (0) 原文 http://blog.csdn.net/xxdddail/art ...
- Qt3D教程
美其名曰教程 其实就是自己的学习之旅 惯例第一章是qt3d的安装 首先说下环境 Windows_Xp_sp3 下载链接 Qt library 4.8.5 下载链接 (在安装Qt library之前,需 ...
- 在Linux上使用cmake创建CodeBlocks工程
最近在linux上使用cmake,对于使用GUI习惯的还真不能适应,真是想尽一切办法把原来使用cmake的工程创建成CodeBlocks工程.工程小了还能接受,工程大了太麻烦了. 看了一下cmake的 ...