第一个
文件ajax_txt.asp的代码:
(此页是AJAX异步提交txt文本文件的路径到ajax_txt_save.asp页面,并从ajax_txt_save.asp
获取
返回的数据)
<!DOCTYPE html PUBLIC "-//W3C//D
TD
XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/D
TD
/xhtml1-transitional.d
td
">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
body,
td
,th {
font-size: 12px;
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
</style>
<script type="text/javascript">
//将用户输入异步提交到服务器
function ajaxSubmit(){
//
获取
文件浏览控件中选择的文件路径
var filesname=document.form1.FileName.value;
if (filesname=="")
alert("请先选择要导入的txt文件!");
document.form1.FileName.focus();
return false;
//创建XMLHttpRequest对象
var xmlhttp;
xmlhttp=new XMLHttpRequest();
}catch(e){
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
//创建请求结果处理程序
xmlhttp.onreadystatechange=function(){
if (4==xmlhttp.readyState){
if (200==xmlhttp.status){
var dates=xmlhttp.responseText; //接收服务端返回的数据
var alldataarr;
if (dates=="null") {
alert('内容
获取
失败!');
} else {
alert('已成功
获取
到txt文本文件中的内容!');
alldataarr = dates.split(",");
document.form1.textarea1.value = alldataarr[0];
document.getElementById('num').innerHTML = alldataarr[1];
//清空上传域file
document.getElementById('FileName').select();
document.selection.clear();
}else{
alert("error");
//打开连接,true表示异步提交
xmlhttp.open("post", "ajax_txt_save.asp", true);
//当方法为post时需要如下设置http头
xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
//发送数据
xmlhttp.send("filesname="+escape(filesname));
</script>
</head>
<
div
align="center">
<br><font color="#009900" size="3"><b>
JS
读取文本文件的内容并赋值给textarea控件</b></font><br><br>
<form id="form1" name="form1" action="index.asp?Action=Write" method="post">
<input type="file" id="FileName" name="FileName" size="30">
<input type="button" name="button1" value="导入" onclick="ajaxSubmit();"><br><br>
<textarea id="textarea1" name="textarea1" cols="46" rows="20"></textarea> <br><br>
已导入:<font color="#FF0000"><span id="num">0</span></font> 条记录<br><br><br>
<input type="submit" name="Submit1" value="提交导入的内容到数据库">
</form>
</
div
>
</body>
</html>
第二个
文件ajax_txt_save.asp的代码:
(此页是用ASP中的FSO来读取txt文本文件中的内容并输出,为ajax_txt.asp这个页面的AJAX异步
获取
提供数据)
'//禁止缓存该页 让AJAX读取该页始终为最新而非过期缓存页
Response.Expires = 0
Response.Expiresabsolute = Now() - 1
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache"
response.Charset="GB2312" '//数据返回的编码类型 显示中文数据必须
Dim objFSO
Dim objText
Dim ObjFile
Dim strTextContent
Dim objDrive
'创建一个文件操作对象实例
Set objFSO = CreateObject("Scripting.FileSystemObject")
'要打开的文件
ObjFile=trim(request("filesname")) '从文浏览控件中
获取
IF objFSO.FileExists(ObjFile) then
Set objText = objFSO.OpenTextFile(ObjFile,1)
'循环读取数据
While not objText.AtEndOfStream '到文件的末尾
strTextContent = strTextContent & objText.ReadLine() & vbcrlf
k=k+1
objText.Close
response.write strTextContent & "," & k
strTextContent= "文件不存在"
response.end()
end if
以上代码经测试,100%能使用,且不受浏览器的安全级别限制,祝你好运!
var a = str.match(/^(\\d{1,2})(:)?(\\d{1,2})\\2(\\d{1,2})$/);
if (a == null) {alert(\'输入的参数不是时间格式\'); return false;}
if (a[1]>24 || a[3]>60 || a[4]>60)
alert(\"时间格式不对\");
return false
return true;
2.2 短日期,形如 (2003-12-05)
function strDateTime(str)
var r = str.match(/^(\\d{1,4})(-|\\/)(\\d{1,2})\\2(\\d{1,2})$/);
if(r==null)return false;
var d= new Date(r[1], r[3]-1, r[4]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.ge
tD
ate()
==r[4]);
2.3 长时间,形如 (2003-12-05 13:04:06)
function strDateTime(str)
var reg = /^(\\d{1,4})(-|\\/)(\\d{1,2})\\2(\\d{1,2}) (\\d{1,2}):(\\d{1,2}):(\\d{1,2})$/;
var r = str.match(reg);
if(r==null)return false;
var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.ge
tD
ate()
==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r
[7]);
2.4 只有年和月。形如(2003-05,或者2003-5)
2.5 只有小时和分钟,形如(12:03)
3、表单类
3.1 所有的表单的值都不能为空
<input onblur=\"if(this.value.replace(/^\\s+|\\s+$/g,\'\')==\'\')alert(\'不能为空!\')\">
3.2 多行文本框的值不能为空。
3.3 多行文本框的值不能超过sMaxStrleng
3.4 多行文本框的值不能少于sMixStrleng
3.5 判断单选框是否选择。
3.6 判断复选框是否选择.
3.7 复选框的全选,多选,全不选,反选
3.8 文件上传过程中判断文件类型
4、字符类
4.1 判断字符全部由a-Z或者是A-Z的字字母组成
<input onblur=\"if(/[^a-zA-Z]/g.test(this.value))alert(\'有错\')\">
4.2 判断字符由字母和数字组成。
<input onblur=\"if(/[^0-9a-zA-Z]/g.test(this.value))alert(\'有错\')\">
4.3 判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母
/^([a-zA-z_]{1})([\\w]*)$/g.test(str)
4.4 字符串替换函数.Replace();
5、浏览器类
5.1 判断浏览器的类型
window.navigator.appName
5.2 判断ie的版本
window.navigator.appVersion
5.3 判断客户端的分辨率
window.screen.height; window.screen.width;
6、结合类
6.1 email的判断。
function ismail(mail)
return(new RegExp(/^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]
+)*\\.[A-Za-z0-9]+$/).test(mail));
6.2 手机号码的验证
6.3 身份证的验证
function isIdCardNo(num)
if (isNaN(num)) {alert(\"输入的不是数字!\"); return false;}
var len = num.length, re;
if (len == 15)
re = new RegExp(/^(\\d{6})()?(\\d{2})(\\d{2})(\\d{2})(\\d{3})$/);
else if (len == 18)
re = new RegExp(/^(\\d{6})()?(\\d{4})(\\d{2})(\\d{2})(\\d{3})(\\d)$/);
else {alert(\"输入的数字位数不对!\"); return false;}
var a = num.match(re);
if (a != null)
if (len==15)
var D = new Date(\"19\"+a[3]+\"/\"+a[4]+\"/\"+a[5]);
var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.ge
tD
ate()
==a[5];
var D = new Date(a[3]+\"/\"+a[4]+\"/\"+a[5]);
var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]
&&D.ge
tD
ate()==a[5];
if (!B) {alert(\"输入的身份证号 \"+ a[0] +\" 里出生日期不对!\"); return false;}
return true;
3.7 复选框的全选,多选,全不选,反选
<form name=hrong>
<input type=checkbox name=All onclick=\"checkAll(\'mm\')\">全选<br/>
<input type=checkbox name=mm onclick=\"checkItem(\'All\')\"><br/>
<input type=checkbox name=mm onclick=\"checkItem(\'All\')\"><br/>
<input type=checkbox name=mm onclick=\"checkItem(\'All\')\"><br/>
<input type=checkbox name=mm onclick=\"checkItem(\'All\')\"><br/>
<input type=checkbox name=mm onclick=\"checkItem(\'All\')\"><br/><br/>
<input type=checkbox name=All2 onclick=\"checkAll(\'mm2\')\">全选<br/>
<input type=checkbox name=mm2 onclick=\"checkItem(\'All2\')\"><br/>
<input type=checkbox name=mm2 onclick=\"checkItem(\'All2\')\"><br/>
<input type=checkbox name=mm2 onclick=\"checkItem(\'All2\')\"><br/>
<input type=checkbox name=mm2 onclick=\"checkItem(\'All2\')\"><br/>
<input type=checkbox name=mm2 onclick=\"checkItem(\'All2\')\"><br/>
</form>
<SCRIPT LANGUAGE=\"java script\">
function checkAll(str)
var a = document.getElementsByName(str);
var n = a.length;
for (var i=0; i<n; i++)
a[i].checked = window.event.srcElement.checked;
function checkItem(str)
var e = window.event.srcElement;
var all = eval(\"document.hrong.\"+ str);
if (e.checked)
var a = document.getElementsByName(e.name);
all.checked = true;
for (var i=0; i<a.length; i++)
if (!a[i].checked){ all.checked = false; break;}
else all.checked = false;
</SCRIPT>
3.8 文件上传过程中判断文件类型
<input type=file onchange=\"alert(this.value.match(/^(.*)(\\.)(.{1,8})$/)[3])\">
<OBJECT
style=\"LEFT: 0px; WIDTH: 392px; TOP: 0px; HEIGHT: 240px\"
height=240
width=392
classid=\"clsid:369303C2-D7AC-11D0-89D5-00A0C90833E6\">
</OBJECT>
<SCRIPT>
S.DrawingSurface.ArcDegrees(0,0,0,30,50,60);
S.DrawingSurface.ArcRadians(30,0,0,30,50,60);
S.DrawingSurface.Line(10,10,100,100);
</SCRIPT>
写注册表:
<SCRIPT>
var WshShell = WScript.CreateObject(\"WScript.Shell\");
WshShell.RegWrite (\"HKCU\\\\Software\\\\ACME\\\\FortuneTeller\\\\\", 1,
\"REG_BINARY\");
WshShell.RegWrite (\"HKCU\\\\Software\\\\ACME\\\\FortuneTeller\\\\MindReader\",
\"Goocher!\", \"REG_SZ\");
var bKey = WshShell.RegRead (\"HKCU\\\\Software\\\\ACME\\\\FortuneTeller\\\\\");
WScript.Echo (WshShell.RegRead
(\"HKCU\\\\Software\\\\ACME\\\\FortuneTeller\\\\MindReader\"));
WshShell.RegDelete (\"HKCU\\\\Software\\\\ACME\\\\FortuneTeller\\\\MindReader\");
WshShell.RegDelete (\"HKCU\\\\Software\\\\ACME\\\\FortuneTeller\\\\\");
WshShell.RegDelete (\"HKCU\\\\Software\\\\ACME\\\\\");
</SCRIPT>
TABLAE相关(客户端动态增加行列)
<SCRIPT LANGUAGE=\"
JS
cript\">
function numberCells() {
var count=0;
for (i=0; i < document.all.mytable.rows.length; i++) {
for (j=0; j < document.all.mytable.rows(i).cells.length; j++) {
document.all.mytable.rows(i).cells(j).innerText = count;
count++;
</SCRIPT>
<BODY onload=\"numberCells()\">
<TABLE id=mytable border=1>
<TR><TH> </TH><TH> </TH><TH> </TH><TH> </
TH></TR>
<TR><
TD
> </
TD
><
TD
> </
TD
><
TD
> </
TD
><
TD
> </T
D></TR>
<TR><
TD
> </
TD
><
TD
> </
TD
><
TD
> </
TD
><
TD
> </T
D></TR>
</TABLE>
</BODY>
</HTML>
1.身份证严格验证:
<script>
var aCity={11:\"北京\",12:\"天津\",13:\"河北\",14:\"山西\",15:\"内蒙古\",21:\"辽宁\",22:\"吉
林\",23:\"黑龙江\",31:\"上海\",32:\"江苏\",33:\"浙江\",34:\"安徽\",35:\"福建\",36:\"江
西\",37:\"山东\",41:\"河南\",42:\"湖北\",43:\"湖南\",44:\"广东\",45:\"广西\",46:\"海南\",50:\"
重庆\",51:\"四川\",52:\"贵州\",53:\"云南\",54:\"西藏\",61:\"陕西\",62:\"甘肃\",63:\"青
海\",64:\"宁夏\",65:\"新疆\",71:\"台湾\",81:\"香港\",82:\"澳门\",91:\"国外\"}
function cidInfo(sId){
var iSum=0
var info=\"\"
if(!/^\\d{17}(\\d|x)$/i.test(sId))return false;
sId=sId.replace(/x$/i,\"a\");
if(aCity[parseInt(sId.substr(0,2))]==null)return \"Error:非法地区\";
sBirthday=sId.substr(6,4)+\"-\"+Number(sId.substr(10,2))+\"-\"+Number
(sId.substr(12,2));
var d=new Date(sBirthday.replace(/-/g,\"/\"))
if(sBirthday!=(d.getFullYear()+\"-\"+ (d.getMonth()+1) + \"-\" + d.ge
tD
ate()))
return \"Error:非法生日\";
for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt
(17 - i),11)
if(iSum%11!=1)return \"Error:非法证号\";
return aCity[parseInt(sId.substr(0,2))]+\",\"+sBirthday+\",\"+(sId.substr
(16,1)%2?\"男\":\"女\")
document.write(cidInfo(\"380524198002300016\"),\"<br/>\");
document.write(cidInfo(\"340524198002300019\"),\"<br/>\")
document.write(cidInfo(\"340524197711111111\"),\"<br/>\")
document.write(cidInfo(\"34052419800101001x\"),\"<br/>\");
</script>
2.验证IP地址
<SCRIPT LANGUAGE=\"java script\">
function isip(s){
var check=function(v){try{return (v<=255 && v>=0)}catch(x){return false}};
var re=s.split(\".\")
return (re.length==4)?(check(re[0]) && check(re[1]) && check(re[2]) &&
check(re[3])):false
var s=\"202.197.78.129\";
alert(isip(s))
</SCRIPT>
3.加sp1后还能用的无边框窗口!!
<HTML XMLNS:IE>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">
<IE:Download ID=\"include\" STYLE=\"behavior:url(#default#download)\" />
<title>Chromeless Window</title>
<SCRIPT LANGUAGE=\"
JS
cript\">
/*--- Special Thanks For andot ---*/
This following code are designed and writen by Windy_sk
<seasonx@163.net>
You can use it freely, but u must held all the copyright items!
/*--- Thanks For andot Again ---*/
var CW_width = 400;
var CW_height = 300;
var CW_top = 100;
var CW_left = 100;
var CW_url = \"/\";
var New_CW = window.createPopup();
var CW_Body = New_CW.document.body;
var content = \"\";
var CSStext = \"margin:1px;color:black; border:2px outset;border-
style:expression(onmouseout=onmouseup=function()
{this.style.borderStyle=\'outset\'}, onmousedown=function(){if(event.button!
=2)this.style.borderStyle=\'inset\'});background-
color:buttonface;width:16px;height:14px;font-size:12px;line-
height:11px;cursor:Default;\";
//Build Window
include.star
tD
ownload(CW_url, function(source){content=source});
function insert_content(){
var temp = \"\";
CW_Body.style.overflow = \"hidden\";
CW_Body.style.backgroundColor = \"white\";
CW_Body.style.border = \"solid black 1px\";
content = content.replace(/<a ([^>]*)>/g,\"<a onclick=\'parent.open
(this.href);return false\' $1>\");
temp += \"<table width=100% height=100% cellpadding=0 cellspacing=0
border=0>\";
temp += \"<tr style=\';font-
size:12px;background:#0099CC;height:20;cursor:default\'
ondblclick=\\\"Max.innerText=Max.innerText==\'1\'?\'2\':\'1\';parent.if_max=!
parent.if_max;parent.show_CW();\\\" onmouseup=\'parent.drag_up(event)\'
onmousemove=\'parent.drag_move(event)\'
onmousedown=\'parent.drag_down(event)\' onselectstart=\'return false\'
oncontextmenu=\'return false\'>\";
temp += \"<
td
style=\'color:#ffffff;padding-left:5px\'>Chromeless Window For
IE6 SP1</
td
>\";
temp += \"<
td
style=\'color:#ffffff;padding-right:5px;\' align=right>\";
temp += \"<span id=Help onclick=\\\"alert(\'Chromeless Window For IE6 SP1
- Ver 1.0\\\\n\\\\nCode By Windy_sk\\\\n\\\\nSpecial Thanks For andot\')\\\"
style=\\\"\"+CSStext+\"font-family:System;padding-right:2px;\\\">?</span>\";
temp += \"<span id=Min onclick=\'parent.New_CW.hide();parent.blur()\'
style=\\\"\"+CSStext+\"font-family:Webdings;\\\" title=\'Minimum\'>0</span>\";
temp += \"<span id=Max
onclick=\\\"this.innerText=this.innerText==\'1\'?\'2\':\'1\';parent.if_max=!
parent.if_max;parent.show_CW();\\\" style=\\\"\"+CSStext+\"font-
family:Webdings;\\\" title=\'Maximum\'>1</span>\";
temp += \"<span id=Close onclick=\'parent.opener=null;parent.close()\'
style=\\\"\"+CSStext+\"font-family:System;padding-right:2px;\\\"
title=\'Close\'>x</span>\";
temp += \"</
td
></tr><tr><
td
colspan=2>\";
temp += \"<
div
id=include style=\'overflow:scroll;overflow-
x:hidden;overflow-y:auto; HEIGHT: 100%; width:\"+CW_width+\"\'>\";
temp += content;
temp += \"</
div
>\";
temp += \"</
td
></tr></table>\";
CW_Body.innerHTML = temp;
setTimeout(\"insert_content()\",1000);
var if_max = true;
function show_CW(){
window.moveTo(10000, 10000);
if(if_max){
New_CW.show(CW_top, CW_left, CW_width, CW_height);
if(typeof(New_CW.document.all.include)!=\"undefined\"){
New_CW.document.all.include.style.width = CW_width;
New_CW.document.all.Max.innerText = \"1\";
}else{
New_CW.show(0, 0, screen.width, screen.height);
New_CW.document.all.include.style.width = screen.width;
window.onfocus = show_CW;
window.onresize = show_CW;
// Move Window
var drag_x,drag_y,draging=false
function drag_move(e){
if (draging){
New_CW.show(e.screenX-drag_x, e.screenY-drag_y, CW_width,
CW_height);
return false;
function drag_down(e){
if(e.button==2)return;
if(New_CW.document.body.offsetWidth==screen.width &&
New_CW.document.body.offsetHeight==screen.height)return;
drag_x=e.clientX;
drag_y=e.clientY;
draging=true;
e.srcElement.setCapture();
function drag_up(e){
draging=false;
e.srcElement.releaseCapture();
if(New_CW.document.body.offsetWidth==screen.width &&
New_CW.document.body.offsetHeight==screen.height) return;
CW_top = e.screenX-drag_x;
CW_left = e.screenY-drag_y;
</SCRIPT>
</HTML>
电话号码的验证
(1)电话号码由数字、\"(\"、\")\"和\"-\"构成
(2)电话号码为3到8位
(3)如果电话号码中包含有区号,那么区号为三位或四位
(4)区号用\"(\"、\")\"或\"-\"和其他部分隔开
(5)移动电话号码为11或12位,如果为12位,那么第一位为0
(6)11位移动电话号码的第一位和第二位为\"13\"
(7)12位移动电话号码的第二位和第三位为\"13\"
根据这几条规则,可以与出以下正则表达式:
(^[0-9]{3,4}\\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\\([0-9]{3,4}\\)[0-9]{3,8}$)|(^0{0,1}
13[0-9]{9}$)
<script language=\"java script\">
function PhoneCheck(s) {
var str=s;
var reg=/(^[0-9]{3,4}\\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\\([0-9]{3,4}\\)[0-9]{3,8}$)|(^0
{0,1}13[0-9]{9}$)/
alert(reg.test(str));
</script>
<input type=text name=\"iphone\">
<input type=button onclick=\"PhoneCheck(document.all.iphone.value)\"
value=\"Check\">
具有在输入非数字字符不回显的效果,即对非数字字符的输入不作反应。
function numbersonly(field,event){
var key,keychar;
if(window.event){
key = window.event.keyCode;
else if (event){
key = event.which;
else{
return true
keychar = String.fromCharCode(key);
if((key == null)||(key == 0)||(key == 8)||(key == 9)||(key == 13)||(key == 27)){
return true;
else if((\"0123456789.\").indexOf(keychar)>-1){
window.status = \"\";
return true;
else {
window.status = \"Field excepts numbers only\";
return false;
str=document.RegExpDemo.txtIP.value;
if(/^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$/.test(str)==false)
window.alert(\'错误的IP地址格式\');
document.RegExpDemo.txtIP.select();
document.RegExpDemo.txtIP.focus();
return;
if(RegExp.$1<1 ||
RegExp.$1>254||RegExp.$2<0||RegExp.$2>254||RegExp.$3<0||RegExp.$3>2
54||RegExp.$4<1||RegExp.$4>254)
window.alert(\'错误的IP地址\');
document.RegExpDemo.txtIP.select();
document.RegExpDemo.txtIP.focus();
return;
//剔除 如 010.020.020.03 前面 的0
var str=str.replace(/0(\\d)/g,\"$1\");
str=str.replace(/0(\\d)/g,\"$1\");
window.alert(str);
#sp_ali { font-size:14px; color:#555; font-size:12px; }
#sp_ali b { padding-right:10px; font-size:14px; font-family:Arial; }
#sp_ali a { padding:0 4px; color:Green; text-decoration:none; }
笔记核心:
firstElementChild只会
获取
元素节点对象,从名称就可以看出来,firstChild则可以
获取
文本节点对象(当然也可以
获取
元素节点对象),比如空格和换行都被当做文本节点。
js
不同于jQuery,在
获取
DOM时,有很多不方便的地方,哎,没办法,原始的东东,虽然万能,但却不方便。
咱今天在使用原生
js
的时候,就遇见一个坑------》firstChild,具...
jquery遍历之parent()和parents()的区别.parent(selector) 获得当前匹配元素集合中每个元素的
父
元素,由选择器筛选(可选)。
.parents(selector) 获得当前匹配元素集合中每个元素的祖先元素,由选择器筛选(可选)。参考文献:
jQuery 遍历 - parent() 方法
jQuery 遍历 - parents() 方法知识点延伸:parent
<
div
id="sh" class="east">上海</
div
>
<
div
id="gz" class="south">广州</
div
>
<
div
id="xa" class="west">西安</
div
>
<
div
id="bj" class="north">北京</
div
>
</
div
&g
<!DOCTYPE HTML PUBLIC "-//W3C//D
TD
HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.d
td
">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
------------------------------------------------------------------------------jQuery----------------------------------------------------------------------
1.
父
级:
jQuery.parent(expr) 找
父
亲节点,可以传入expr进行...
先说一下
JS
的
获取
方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比
JS
的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素原生的
JS
获取
ID为test的元素下的
子元素
。可以用:比如:var a = docuemnt.getElementById("dom").getElementsByTagName_r("
div
"); 这样是没有问题...
$(this).parents(); // 全部
父
节点
$(this).children(); // 全部
子
节点
$(this).find(); // 返回
父
元素中的
子元素
$(this).contents(); // 返回元素里面的所有内容,包括节点和文本
$(this).prev(); // 上一个兄弟节点
$(this).prevAll(); // 之前所有兄弟节点
$(this).next(); // 下一个兄弟节点
$(this).next..