JS、Jquery选择器总结

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">

	<!-- <link href="./css/xxx.css"></link>-->
 <script src="../jquery-1.8.3.min.js"></script>


  <title>Document</title>
 </head>
	<script language="JavaScript">
		//选择器
		/*

		HTML DOM Document 对象
		Document 对象
		每个载入浏览器的 HTML 文档都会成为 Document 对

		在 HTML DOM (文档对象模型)中,每个部分都是节点:
			文档本身是文档节点
			所有 HTML 元素是元素节点(DIV,INPUT,UL等等)
			所有 HTML 属性是属性节点(id="",name="",class=""等等)
			HTML 元素内的文本是文本节点(文字,包含空格,换行符等)
			注释是注释节点(注释)

		Js节点属性与方法(尤其重要...JS操作元素的根本)
		属性:
		Attributes     存储节点的属性列表(只读)
		childNodes 存储节点的子节点列表(只读)
		dataType     返回此节点的数据类型
		Definition     以DTD或XML模式给出的节点的定义(只读)
		Doctype     指定文档类型节点(只读)
		documentElement     返回文档的根元素(可读写)
		firstChild     返回当前节点的第一个子节点(只读)
		Implementation     返回XMLDOMImplementation对象
		lastChild     返回当前节点最后一个子节点(只读)
		nextSibling     返回当前节点的下一个兄弟节点(只读)
		nodeName     返回节点的名字(只读)
		nodeType     返回节点的类型(只读)
		nodeTypedValue     存储节点值(可读写)
		nodeValue     返回节点的文本(可读写)
		ownerDocument     返回包含此节点的根文档(只读)
		parentNode     返回父节点(只读)
		Parsed     返回此节点及其子节点是否已经被解析(只读)
		Prefix     返回名称空间前缀(只读)
		preserveWhiteSpace     指定是否保留空白(可读写)
		previousSibling     返回此节点的前一个兄弟节点(只读)
		Text     返回此节点及其后代的文本内容(可读写)
		url     返回最近载入的XML文档的URL(只读)
		Xml     返回节点及其后代的XML表示(只读)
		nextSibling 返回相领的节点

		方法:
		appendChild     为当前节点添加一个新的子节点,放在最后的子节点后
		cloneNode     返回当前节点的拷贝
		createAttribute     创建新的属性
		createCDATASection     创建包括给定数据的CDATA段
		createComment     创建一个注释节点
		createDocumentFragment     创建DocumentFragment对象
		createElement     创建一个元素节点
		createEntityReference     创建EntityReference对象
		createNode     创建给定类型,名字和命名空间的节点
		createPorcessingInstruction     创建操作指令节点
		createTextNode     创建包括给定数据的文本节点
		getElementsByTagName     返回指定名字的元素集合
		hasChildNodes     返回当前节点是否有子节点
		insertBefore     在指定节点前插入子节点
		Load     导入指定位置的XML文档
		loadXML     导入指定字符串的XML文档
		removeChild     从子结点列表中删除指定的子节点
		replaceChild     从子节点列表中替换指定的子节点
		Save     把XML文件存到指定节点
		selectNodes     对节点进行指定的匹配,并返回匹配节点列表
		selectSingleNode     对节点进行指定的匹配,并返回第一个匹配节点
		transformNode     使用指定的样式表对节点及其后代进行转换
		transformNodeToObject     使用指定的样式表将节点及其后代转换为对象

		
		Element 对象(元素节点)
		在 HTML DOM 中,Element 对象表示 HTML 元素。
		Element 对象可以拥有类型为元素节点、文本节点、注释节点的子节点。
		NodeList 对象表示节点列表,比如 HTML 元素的子节点集合。
		元素也可以拥有属性。属性是属性节点(参见下一节)。
		
		


		Attr 对象(属性节点)
		在 HTML DOM 中,Attr 对象表示 HTML 属性。
		HTML 属性始终属于 HTML 元素。

		Event 对象(事件)
		Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
		事件通常与函数结合使用,函数不会在事件发生前被执行!
		
		1.获取节点:
			1.1 基本选择器
				1.1.1 元素选择器()(对应Js:document.getElementsByTagName("XX"))
					$(“P”);  //选择P元素,注意P为大写;

				1.1.2 ID选择器(对应Js:document.getElementById("XX"))
					$(“#test”); //选择id="test"的元素;eg:<div id="test"></div>

				1.1.3 CSS选择器(对应JS:document.getElementsByClassName("XX"))
					$(“.articles”);   //选择class=”articles”的元素;

				1.1.4 混合选择器
					方式一:
					$("P",“#test”, ”.articles”);   //标签、id与class混合选择,用 “,”分隔开;
					方式二:
					$("P#test.articles"); 
			
			1.2 其他选择器
				 $(this) //当前HTML元素

				 $(“P”)  //所有<P>元素

				 $(“p.intro”) //所有class=”intro”的<P>元素

				 $(“.intro”) //所有class=”intro”的元素

				 $(“ul li:first”) //每个<ul>的第一个<li>元素

				 $(“[href$=’.jpg’]”)//所有带有以“.jpg”结尾的属性值的href元素

				 $(“div#intro.head”)//id=”intro”的<div>元素中的所有class=”head”的元素

				 选择指定元素下的所有子元素
				 $(“#destinations li”);  //选中id为destinations下所有的li子元素;
 
				选择直属子元素
				$(“#destionations > li”);  //使用“>”符号选择直属子元素,与不加“>”符号的区别为//只为#destionations下一个层次的子元素,不包括子子元素;

				伪选择器

				first(第一个)     last(最后一个)     odd(奇数个)   even(偶数个)

				伪选择器的语法为在子元素名称后面加“:”号,加参数;

				$(“#destionations li:frist”);

				$(“#destionations li:last”);

				$(“#destionations li:odd”);

				$(“#destionations li:even”);


		2.获取值:
			2.1 元素节点文本值操作
				对于内部的文本采用$("XX").html(),赋值$("XX").html("strValue");//js采用getElementByXX("XX").innerHTML以及innerHTML="XX"设置值

			2.2 元素节点属性操作
				2.2.1 属性节点取值 
					text() - 设置或返回所选元素的文本内容,(只返回文本节点,若非文本节点自动过滤)
					html() - 设置或返回所选元素的内容(包括 HTML 标记)(返回所有内容,包括元素、文本、注释节点等)
					val() -  设置或返回表单字段的属性名为value值(若没有改字段,返回"")
					attr() - 设置/改变属性值。
				2.2.2 属性节点赋值
					text("XX") - 设置或返回所选元素的文本内容
					html("XX") - 设置或返回所选元素的内容(包括 HTML 标记)
					val("XX") -  设置或返回表单字段的值
					attr("key","value",..) - 设置/改变属性值。可以同时改变多个属性值eg:$("#w3s").attr({
								"href" : "http://www.w3school.com.cn/jquery",
								"title" : "W3School jQuery Tutorial"
							 });
		
		常用JS基本操作:

		parentObj.childNodes :获取已知节点的子节点数组,然后可以通过循环或者索引找到需要的节点(节点包括四种:元素节点,属性节点,文本节点,注释节点)。
		
		parentObj.children :获取已知节点的直接子节点数组()。

		parentObj.firstChild :如果节点为已知节点(parentObj)的第一个子节点就可以使用这个方法。(会获取到文本、注释节点)

		parentObj.lastChild :很显然,这个属性是获取已知节点(parentObj)的最后一个子节点。(会获取到文本、注释节点)

		neighbourNode.previousSibling :获取已知节点(neighbourNode)的前一个节点,这个属性和前面的firstChild、lastChild一样都似乎可以递归使用的。
		
		neighbourNode.nextSibling :获取已知节点(neighbourNode)的下一个节点,同样支持递归。
:		
		childNode.parentNode :获取已知节点的父节点。


		*/



		function test(){			
			//根据id获取对象
			//alert("ById:"+document.getElementById("tid").innerHTML);

			//根据tagName获取对象
			//alert("ByTagName:"+document.getElementsByTagName("div")[0].innerHTML);

			//IE不支持,Chorme支持,获取name的值,已经过期不用
			//alert("ByName:"+document.getElementsByName("a")[0].innerHTML);
			
			//根据Class的内容获取对象,取代ByName
			//alert("ByClassName:"+document.getElementsByClassName("testClassName")[0].innerHTML);

			//Jquery获取元素ByID
			//alert("ByIdSelector:"+$("#tid").html());

			//var #div = $("#tid");
			var div1 = document.getElementById("tid");

			//childNodes使用(获取当前对象的所有子节点(会包含文本节点,注释节点))
			var childStr = "";
			for(var i=0;i<div1.childNodes.length;i++){
				//undefined,<div>标签换行符导致,换行符也是节点,属于文本节点	
				//Node:1是元素节点,2是属性节点,3文本节点,4注释节点
				if(div1.childNodes[i].nodeType==1){
					//alert(div1.childNodes[i].tagName);
					childStr= childStr + div1.childNodes[i].tagName;
				}
			}
			//alert(childStr);
			
			//children使用(获取当前对象的所有子节点(只会获取元素节点))
			var childStr1 = "";
			for(var i=0;i<div1.children.length;i++){
				//undefined,<div>标签换行符导致,换行符也是节点,属于文本节点	
					//alert(div1.children[i].tagName);
					childStr1= childStr1 + div1.children[i].tagName;
			}
			//alert(childStr1);


			//alert(div1.children[1].innerHTML);
		
			//原生js获取子节点
			//alert(div1.childNodes[1].tagName); //JS代码不能引用Jquery对象
			//alert(div1.childNodes[1].innerHTML);//下标从一开始

			//获取第一个节点的值(会获取到文本节点,注释节点)
			//alert(div1.firstChild.nodeType);

			//获取类Class节点对象
			//alert($(" .cdClassName1").html());
			
			//js取属性值
			//alert("className-->"+div1.className);
			//alert("style-->"+div1.style.color);
			//alert("id-->"+div1.id);

			//jquery取属性值
			/*alert("tidtext()-->"+$("#tid").text());
			alert("tidattr(class)-->"+$("#tid").attr("class"));
			alert("tidattr(style)-->"+$("#tid").attr("style"));
			alert("inputval-->"+$("input").val());
			alert("tidhtml-->"+$("#tid").html());
			*/

			//选择器联合使用
			alert($("div#tid.testClassName").text());
			alert($("div","#tid",".testClassName").text());

			
		}
	</script>
 <body>
	<div id="tid" class="testClassName" style="color:blue" name="a">
		<div id="cdId1" class="cdClassName1" style="color:red" name="b">111</div>
			<!--
			style是HTML中直接定义样式,class可用于引用定义好的css类(class),实现重用等。

			另外,在JS中,style就是用style关键字来使用
			上例中是document.getElementById("div1").style
			class要使用className关键字来使用
			上例中是document.getElementById("div2").className
			-->
		<div id="cdId2" class="testClassName" name="b">
			<ul>
				<li>cdId1li1</li>
				<li>cdId1li2</li>
				<li>cdId1li3</li>
				<li>cdId1li4</li>
			</ul>
		</div>
		<div id="cdId3" class="cdClassName3" name="b"></div>
		<div id="cdId4" class="cdClassName4" name="b"></div>
	</div>
	<input type="submit"  value="测试" onClick="test()"/>
 </body>
</html>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值