//DOM层次关系选择器(祖后,父子,兄弟,邻居-左邻右舍)
//祖宗与后代关系,曹操有多少后代?子子孙孙无穷尽焉!
//某个文件夹中“所有”子文件夹
//某元素中包含的“所有”元素(递归)
$("ancestor descendant");//Array<Element>
$("html p");//例:当前页面中的所有paragraph元素
//父子关系
//曹操有几个孩子?曹昂、曹丕、曹植、曹冲…… 能数过来!
//某个文件夹的“下级”文件夹(子文件夹)
$("father > child");//Array<Element>
$("#identity > div");//例:某个元素下的Tag为div的元素
//兄弟关系
//曹丕有几个兄弟?曹昂、曹植、曹冲……
//点选一个文件夹变蓝了吧->反向选择->这个不是蓝色了其他都变蓝色了
$("prev ~ siblings");//Array<Element>
$("#identity ~ p");//例:某个元素的所有Tag为p的兄弟元素
$("#identity ~ .fontSmall");//例:某个元素的所有class为fontSmall的兄弟元素
//邻居关系——左邻右舍
//单向链表?他就知道他下一个是谁!
$("prev + next");//Element
//经过测试必须是紧邻#identity下面的元素,因为DOM是线体的有顺序的
//因为就是要下面一个所以“跳河”认为可以写成这样$("#identity +");
//如果要体现出我的下一个是个什么Tag的或者什么.class的
//应该写成$("#identity + tag")或者$("#identity + .class");
//当前取得邻居的写法,应该是jQuery的bug
$("#identity + p");//例:某元素的下面是paragraph元素
//基本选择器(Basics Selectors)
//页面上所有Elements
$("*"); //Array<Element>
//某种tag的Elements
$("tag");//Array<Element>
//据class属性取得Elements
$(".class");
//据Tag id精确取得Element
$("#id");//Element
//多项选择器
$("selector1,selectorN");//Array<Element>
$("#id,tag,.class");//例:据id,tag,class选择多个元素分别定义三个class为increaseFont、decreaseFont、resetFont 的元素。为其click事件添加事件
/*
对页面上的字体增大、缩小、恢复原始大小
需要在html页面中定义三个元素
元素的class分别为 resetFont、increaseFont、decreaseFont
在本文件的JQuery事件中分别定义了三个元素的click事件来实现增大、缩小、恢复原始大小
*/
$(function () {
//取得字体大小,在html标记下定义了font-size
var originalFontSize = $("html").css("font-size");
//恢复默认字体大小
$(".resetFont").click(function () {
$("html").css("font-size", originalFontSize);
//JavaScript不向下执行
return false;
});
//加大字体,某个元素的class定义为increaseFont
$(".increaseFont").click(function () {
//取得当前字体大小 后缀px,pt,pc
var currentFontSize = $("html").css("font-size");
//取得当前字体大小,parseFloat()转为float类型去除后缀
var currentFontSizeNumber = parseFloat(currentFontSize);
//新定义的字体大小
var newFontSize = currentFontSizeNumber * 1.1;
//重写样式表
$("html").css("font-size", newFontSize);
//JavaScript不向下执行
return false;
});
//减小字体,某个元素的class定义为decreaseFont
$(".decreaseFont").click(function () {
//取得当前字体大小 后缀px,pt,pc
var currentFontSize = $("html").css("font-size");
//取得当前字体大小,parseFloat()转为float类型去除后缀
var currentFontSizeNumber = parseFloat(currentFontSize);
//重新定义字体大小
var newFontSize = currentFontSizeNumber * 0.9;
//重写样式表
$("html").css("font-size", newFontSize);
//JavaScript不向下执行
return false;
});
});DOM 中的 getElementsByTagName()方法在JQuery中的表现就是$(“tagName”)这么简单!
匿名函数来解决 window.onload 事件
对页面上的所有“div”标记下手,定义统一的外观
对“body”标记定义外观
动态添加一个“span”标记将其放置在“body”里
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JQuery 测试</title>
<script src="js/jquery-1.7.1.min.js" type="text/javascript">
</script>
<script type='text/javascript'>
$(function () {
$("div").width(100)
.css("color", "red")
.css("margin", "20px")
.css("border", "dotted 1px green");
$(document.body).css("background-color", "#cccccc");
$("<span>Four</span>").appendTo("body");
});
</script>
<script type="text/javascript">
$(function () {
var v = $("div");
alert(v.length);
for (var i = 0; i < v.length; i++) {
alert(v[i].innerHTML);
}
});
</script>
</head>
<body>
<div>
第一个div</div>
<div>
第二个div</div>
<div>
第三个div</div>
</body>
</html>都与对象有关:DOM和JavaScript都被浏览器支持。DOM可以将文档(页面)转化为对象,而JavaScript是面向对象语言。
DOM可以通过三种方法取得页面中的“节点”
getElementById()
getElementsByClassName() HTML5 DOM中增加的方法
getElementsByTagName()
可以对“节点”的属性进行赋值和取值
getAttribute()
setAttribute()
这里的“节点”就是JavaScript面向的对象。
在DOM的规范中“节点”包括Name、Value属性。
“节点”同时可以是容器也可以被容器包裹,因而有Child或Parent。
JavaScript对DOM规范下的各种元素进行操作,可以是效果、也可以交互。
JavaScript、JScript、ECMAScript 都是一个东西,是网景和SUN公司合作开发的旨在改善网页交互性的一种脚本语言。目前得到几乎所有浏览器都支持。
JavaScript语言是解释执行语言,浏览器通过内置JavaScript解释器来支持JavaScript语言。也就是说在程序执行阶段才能发现代码是否存在错误。
JavaScript语言是可嵌入Web页面的面向对象编程语言,是弱类型语言。