第一页 上页 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]

 JS遍历2层DOM装入数组转JSON【实例】

XML/HTML代码
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <title>无标题文档</title>  
  6. <style>  
  7. *{ margin:0; padding:0;}  
  8. body{ color:#333; font-family:'Microsoft Yahei'; font-size:16px;}  
  9. ul,li{ list-style:none; line-height:30px;}  
  10. .conbox{ padding:10px;}  
  11. .conbox .selected{ color:#CC0033}  
  12. .conbox .lis span{ padding:0 5px;}  
  13. </style>  
  14. </head>  
  15. <body arrData="111,222,333,444,555,666">  
  16. <div class="conbox">  
  17.     <ul class="lisbox">  
  18.         <li data-qId="11" n="aaa" class="lis selected"><span class="on">111c</span><span class="on">222c</span><span class="on">333c</span></li>  
  19.         <li data-qId="22" n="bbb" class="lis">bbb</li>  
  20.         <li data-qId="33" n="ccc" class="lis selected"><span class="on">111a</span><span class="on">222a</span><span class="on">333a</span></li>  
  21.         <li data-qId="44" n="ddd" class="lis">ddd</li>  
  22.         <li data-qId="55" n="eee" class="lis selected"><span class="on">111b</span><span class="on">222b</span><span class="on">333b</span></li>  
  23.         <li data-qId="66" n="fff" class="lis">fff</li>  
  24.     </ul>  
  25. </div>  
  26. <div id="submitBtn" style=" width:100%; height:50px; line-height:50px; text-align:center; color:#fff; background:#CC0000">点击事件</div>  
  27. </body>  
  28. <script type="text/javascript" src="http://code.liuxinxiu.com/lib/zepto/zepto-1.1.6.js"></script>  
  29. <script type="text/javascript">  
  30. $("#submitBtn").on("click",function(){  
  31.     /*********  声明变量获取节点 ***************/  
  32.     var qList=$(".lisbox li.selected"),qLen=qList.length,arr=[];  
  33.     /*********  循环第一层问题 ***********/  
  34.     for(var i=0;i<qLen;i++){  
  35.         /**** var $anList=$qList.eq(i).find("[name=an" + i + "]:checked"),subArr=[]; ****/  
  36.         var anList=qList.eq(i).find(".on"),subArr=[];  
  37.         var qid=qList.eq(i).attr("data-qId");  
  38.         /*****  循环第二层答案  **********/  
  39.         for(var key=0;key<anList.length;key++){  
  40.             subArr.push(anList.eq(key).text());  
  41.         }  
  42.         /*****  添加到整体数组 ************/  
  43.         arr.push({Question:qid,Answer:subArr});  
  44.     }  
  45.     /***** 转化成JSON结构字符串 *******/  
  46.     var subArrst=JSON.stringify(subArr);  
  47.     var jsondata=JSON.stringify(arr);  
  48.     /***** 使用replace替换"号为空、可全部 ******/  
  49.     var _subArrst=subArrst.replace(/"/g,"");  
  50.     var _datalist=jsondata.replace(/"/g,"");  
  51.     var _dataJson={guId:111222,eventId:11,plat:5,datalist:subArrst};  
  52.     alert(_datalist)  
  53. });  
  54. </script>  
  55. </html>  

 

 一、技术的必须的

作为一名最基础的前端工程师你必须掌握HTML、CSS和JavaScript。三者必须同时精通,类似我这样对前端知识一知半解的,一遇到问题就停下工作就四处搜索解决方案的,首先就算不上一个合格的前端人员。像我这样的如果当了前端工程师那工期肯定是不能保证的。合格的前端工程师第一要学会的就是在没有任何外来帮助的情况下(包括搜索引擎),能够完成大多数任务。

以下知识点是作为一个前端工程师必须了解和熟悉的:

  • DOM结构——两个节点之间可能存在哪些关系以及如何在节点之间任意移动。
  • DOM操作——怎样添加、移除、移动、复制、创建和查找节点。
  • 事件——怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别。
  • XMLHttpRequest——这是什么、怎样完整地执行一次GET请求、怎样检测错误。
  • 严格模式与混杂模式——如何触发这两种模式,区分它们有何意义。
  • 盒模型——外边距、内边距和边框之间的关系,IE < 8中的盒模型有什么不同。
  • 块级元素与行内元素——怎么用CSS控制它们、它们怎样影响周围的元素以及你觉得应该如何定义它们的样式。
  • 浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。
  • HTML与XHTML——二者有什么区别,你觉得应该使用哪一个并说出理由。
  • JSON——它是什么、为什么应该使用它、到底该怎么使用它,说出实现细节来。

上述这些知识点都应该是你“想都不用想”就知道的东西。除了上述的前端知识,也还需学会至少一门后端编程语言,让你自己学会如何与后端进行更好的交互。

很多前端工程师对一些库非常的熟悉,jQuery,Bootstrap等,但是对于库的熟悉并不能提现你的优秀,真正优秀的是那些理解库背后的机制,特别是能够徒手写出一个自己的库的人。

真正合格的前端工程师是能实现具体的功能要求,而优秀的前端工程师需要解决的问题是寻找一个最优的解决方案。

二、沟通很重要

优秀的前端工程师需要具备良好的沟通能力,因为你的工作与很多人的工作息息相关。在任何情况下,前端工程师至少都要满足下列四类客户的需求。

  1. 产品经理——这些是负责策划应用程序的一群人。他们能够想象出怎样通过应用程序来满足用户需求,以及怎样通过他们设计的模式赚到钱(但愿如此)。一般来说,这些人追求的是丰富的功能。
  2. UI设计师——这些人负责应用程序的视觉设计和交互模拟。他们关心的是用户对什么敏感、交互的一贯性以及整体的好用性。他们热衷于流畅靓丽但并不容易实现的用户界面。
  3. 项目经理——这些人负责实际地运行和维护应用程序。项目管理的主要关注点,无外乎正常运行时间——应用程序始终正常可用的时间、性能和截止日期。项目经理追求的目标往往是尽量保持事情的简单化,以及不在升级更新时引入新问题。
  4. 最终用户——当然是应用程序的主要消费者。尽管我们不会经常与最终用户打交道,但他们的反馈意见至关重要;没人想用的应用程序毫无价值。最终用户要求最多的就是对个人有用的功能,以及竞争性产品所具备的功能。

不要在没有作出评估之前就随便接受某项任务。你必须始终记住,一定先搞清楚别人到底想让你干什么,不能简单地接受“这个功能有问题”之类的大概其的说法。而且,你还要确切地知道这个功能或设计的真正意图何在。“加一个按钮”之类的任务并不总意味着你最后会加一个按钮。还可能意味着你会找产品经理,问一问这个按钮有什么用处,然后再找UI设计师一块探讨按钮是不是最佳的交互手段。要成为优秀的前端工程师,这种沟通至关重要。

那么,前端工程师应该最关注哪些人的意见呢?答案是所有这四类人。优秀的前端工程师必须知道如何平衡这四类人的需求和预期,然后在此基础上拿出最佳解决方案。由于前端工程师处于与这四类人沟通的交汇点上,因此其沟通能力的重要性不言而喻。如果一个非常酷的新功能因为会影响前端性能,必须删繁就简,你怎么跟产品经理解释?再比如,假设某个设计如果不改回原方案可能会给应用程序造成负面影响,你怎么才能说服UI设计师?作为前端工程师,你必须了解每一类人的想法从何而来,必须能拿出所有各方都能接受的解决方案。从某种意义上说,优秀的前端工程师就像是一位大使,需要时刻抱着外交官的心态来应对每一天的工作。

专业技术可能会引领你进入成为前端工程师的大门,但只有运用该技术创造的应用程序以及你跟他人并肩协同的能力,才会真正让你变得优秀。

三、提升无止境

优秀的前端工程师应该具备快速学习能力。推动Web发展的技术并不是静止不动的,这些技术几乎每天都在变化,如果没有快速学习能力,你就跟不上Web发展的步伐。你必须不断提升自己,不断学习新技术、新模式;仅仅依靠今天的知识无法适应未来。Web的明天与今天必将有天壤之别,而你的工作就是要搞清楚如何通过自己的Web应用程序来体现这种翻天覆地的变化。

四、前端开发知识架构

 1、javascript 正则对象替换创建 和用法: /pattern/flags  先简单案例学习认识下replace能干什么

    正则表达式构造函数: new RegExp("pattern"[,"flags"]); 

    正则表达式替换变量函数:stringObj.replace(RegExp,replace Text);

参数说明: 
pattern -- 一个正则表达式文本 
flags -- 如果存在,将是以下值: 
g: 全局匹配 
i: 忽略大小写 
gi: 以上组合 

//下面的例子用来获取url的两个参数,并返回urlRewrite之前的真实Url
var
 reg=new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gmi");
var url="http://www.qidian.com/BookReader/1017141,20361055.aspx";

//方式一,最简单常用的方式
var rep=url.replace(reg,"$1ShowBook.aspx?bookId=$2&chapterId=$3");
alert(rep);

//方式二 ,采用固定参数的回调函数
var rep2=url.replace(reg,function(m,p1,p2,p3){return p1+"ShowBook.aspx?bookId="+p3+"&chapterId="+p3});
alert(rep2);

//方式三,采用非固定参数的回调函数
var rep3=url.replace(reg,function(){var args=arguments; return args[1]+"ShowBook.aspx?bookId="+args[2]+"&chapterId="+args[3];});
alert(rep3);

//方法四
//方式四和方法三很类似, 除了返回替换后的字符串外,还可以单独获取参数
var bookId;
var chapterId;
function capText()
{
    var args=arguments; 
    bookId=args[2];
    chapterId=args[3];
    return args[1]+"ShowBook.aspx?bookId="+args[2]+"&chapterId="+args[3];
}

var rep4=url.replace(reg,capText);
alert(rep4);
alert(bookId);
alert(chapterId);

//使用test方法获取分组
var reg3=new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gmi");
reg3.test("http://www.qidian.com/BookReader/1017141,20361055.aspx");
//获取三个分组
alert(RegExp.$1); 
alert(RegExp.$2);
alert(RegExp.$3);

 

2、 学习最常用的 test exec match search  replace  split 6个方法

1) test  检查指定的字符串是否存在
var data = “123123″;
var reCat = /123/gi;
alert(reCat.test(data));  //true
//检查字符是否存在  g 继续往下走  i 不区分大小写

2) exec 返回查询值
var data = “123123,213,12312,312,3,Cat,cat,dsfsdfs,”;
var reCat = /cat/i;
alert(reCat.exec(data));  //Cat

3)match  得到查询数组
var data = “123123,213,12312,312,3,Cat,cat,dsfsdfs,”;
var reCat = /cat/gi;
var arrMactches = data.match(reCat)
for (var i=0;i < arrMactches.length ; i++)
{
alert(arrMactches[i]);   //Cat  cat
}

4) search  返回搜索位置  类似于indexof
var data = “123123,213,12312,312,3,Cat,cat,dsfsdfs,”;
var reCat = /cat/gi;
alert(data.search(reCat));  //23

5) replace  替换字符  利用正则替换
var data = “123123,213,12312,312,3,Cat,cat,dsfsdfs,”;
var reCat = /cat/gi;
alert(data.replace(reCat,”libinqq”));

6)split   利用正则分割数组
var data = “123123,213,12312,312,3,Cat,cat,dsfsdfs,”;
var reCat = /\,/;
var arrdata = data.split(reCat);
for (var i = 0; i < arrdata.length; i++)
{
alert(arrdata[i]);
}

3、常用表达式收集:

 

"^\\d+$"  //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$"  //正整数
"^((-\\d+)|(0+))$"  //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$"  //负整数
"^-?\\d+$"    //整数
"^\\d+(\\.\\d+)?$"  //非负浮点数(正浮点数 + 0)
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"
//正浮点数
"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"  //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"
//负浮点数
"^(-?\\d+)(\\.\\d+)?$"  //浮点数
"^[A-Za-z]+$"  //由26个英文字母组成的字符串
"^[A-Z]+$"  //由26个英文字母的大写组成的字符串
"^[a-z]+$"  //由26个英文字母的小写组成的字符串
"^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串
"^\\w+$"  //由数字、26个英文字母或者下划线组成的字符串
"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"    //email地址
"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url
"^[A-Za-z0-9_]*$"。

============================================正则表达式基础知识==============================================

^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a" 
$ 匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A" 
* 匹配前面元字符0次或多次,/ba*/将匹配b,ba,baa,baaa 
+ 匹配前面元字符1次或多次,/ba+/将匹配ba,baa,baaa 
? 匹配前面元字符0次或1次,/ba?/将匹配b,ba 
(x) 匹配x保存x在名为$1...$9的变量中 
x|y 匹配x或y 
{n} 精确匹配n次 
{n,} 匹配n次以上 
{n,m} 匹配n-m次 
[xyz] 字符集(character set),匹配这个集合中的任一一个字符(或元字符) 
[^xyz] 不匹配这个集合中的任何一个字符 
[\b] 匹配一个退格符 
\b 匹配一个单词的边界 
\B 匹配一个单词的非边界 
\cX 这儿,X是一个控制符,/\cM/匹配Ctrl-M 
\d 匹配一个字数字符,/\d/ = /[0-9]/ 
\D 匹配一个非字数字符,/\D/ = /[^0-9]/ 
\n 匹配一个换行符 
\r 匹配一个回车符 
\s 匹配一个空白字符,包括\n,\r,\f,\t,\v等 
\S 匹配一个非空白字符,等于/[^\n\f\r\t\v]/ 
\t 匹配一个制表符 
\v 匹配一个重直制表符 
\w 匹配一个可以组成单词的字符(alphanumeric,这是我的意译,含数字),包括下划线,如[\w]匹配"$5.98"中的5,等于[a-zA-Z0-9] 
\W 匹配一个不可以组成单词的字符,如[\W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。 

Java代码
  1. <%  
  2. java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");  
  3. java.util.Date currentTime = new java.util.Date();//得到当前系统时间  
  4. String DateTime = formatter.format(currentTime); //将日期时间格式化  
  5. %>  
  6. ############################################ 我是华丽分割线 ########################################  
  7. <div class="yy_header" sex="<c:if test="${USER.sex==1}">mm</c:if><c:if test="${USER.sex==0}">gg</c:if>" guid="${GUID}" taohua="<c:if test="${USER.level==5 or USER.monthUser}"><fmt:formatDate value="${muDate}" type="both" pattern="yyyy-MM-dd"/></c:if><c:if test="${USER.level!=5 and not USER.monthUser}">false</c:if>" datetime="<%=DateTime%>">  
XML/HTML代码
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <title>无标题文档</title>  
  6. <script type="text/javascript" src="http://static.3snews.net/public/js/jquery-1.5.1.js"></script>  
  7. <script type="text/javascript">  
  8. $(document).ready(function(){  
  9. var datetime=$(".yy_header").attr("datetime");  
  10. var taohuavip=$(".yy_header").attr("taohuavip");  
  11. var regdatetime=$(".yy_header").attr("regdatetime");  
  12. var datetimedatetimeNN=datetime.replace(/\-/g,"").replace(/\:/g,"");  
  13. var taohuaviptaohuavipNN=taohuavip.replace(/\-/g,"").replace(/\:/g,"");  
  14. var regdatetimeregdatetimeNN=regdatetime.replace(/\-/g,"").replace(/\:/g,"");  
  15. //匹配服务器时间  
  16. var snowdate=datetimeNN.split(" ")[0];  
  17. var snowtime=datetimeNN.split(" ")[1];  
  18. var snowdatesnowdatetime=snowdate+snowtime;  
  19. //匹配桃花VIP时间  
  20. var taohuadate=taohuavipNN.split(" ")[0];  
  21. var taohuatime=taohuavipNN.split(" ")[1];  
  22. var taohuadatetaohuadatetime=taohuadate+taohuatime;  
  23. //匹配用户注册时间  
  24. var regdate=regdatetimeNN.split(" ")[0];  
  25. var regtime=regdatetimeNN.split(" ")[1];  
  26. var regdateregdatetime=regdate+regtime;  
  27. alert(snowdatetime)  
  28. alert(taohuadatetime)  
  29. alert(regdatetime)  
  30.   
  31. //alert(Thuatime.replace(" ","").replace("-",""));   
  32. //alert(Thuatime.replace(/\ /g,"").replace(/\-/g,"").replace(/\:/g,""))  
  33. //删除第二次出现的test  
  34. var str="testORtest"  
  35. var h=str.replace(/test$/,"hello")  
  36. //alert(h)  
  37.   
  38. })  
  39. </script>  
  40. </head>  
  41.   
  42. <body>  
  43. <div class="yy_header" sex="gg" guid="215416540" datetime="2014-11-20 12:52:12" taohuavip="2016-12-01 00:00:00" regdatetime="2013-01-01 15:50"></div>  
  44. </body>  
  45. </html>  

 

JS 事件 DOM2 的进化

[不指定 2014/09/25 18:31 | by 刘新修 ]

DOM2 的进化:

DOM 0 Event

DOM 2 Event

onblur()

blur

onfocus()

focus

onchange()

change

onmouseover()

mouseover

onmouseout()

mouseout

onmousemove()

mousemove

onmousedown()

mousedown

onmouseup()

mouseup

onclick()

click

ondblclick()

dblclick

onkeydown()

keydown

onkeyup()

keyup

onkeypress()

keypress

onsubmit()

submit

onload()

load

onunload()

unload

JQuery总结

[不指定 2014/09/16 16:32 | by 刘新修 ]

1. 利用JQuery中如何判断元素中是否有文本

JavaScript代码
  1. <script type="text/javascript">  
  2. $(function(){  
  3.        $("body").each(function(){  
  4.               if($(this).find("h1").text().trim()==""){  
  5.                      $(this).css("background","blue");  
  6.               }else{  
  7.                      $(this).css("background","red");  
  8.               }                
  9.        });                                
  10. });  
  11. </script>  

注://trim()方法是去空格,$.trim()函数删除提供字符串的所有换行符,空格(包括非中断空格

2. 判断ul标签下是否有li元素

JavaScript代码
  1. var jqObj = $(this);  
  2. if(!jqObj.has('li').length){  
  3. jqObj.hide();  
  4. }  

3. 遍历/判断子节点(带某些参数子节点)的个数,如果有少于1的给出提示.

JavaScript代码
  1. $("div[id^=div]").each(function(){  
  2.     //alert($(this).find(".subclass").children('ul').size());  
  3.     var lili=$(this).find(".subclass").children('ul').size();  
  4.     //alert(lili)  
  5.     if(lili<1){  
  6.      alert("ddd")  
  7.     }  
  8. });  
XML/HTML代码
  1. <div id="div1" class="topclass"><ul><li></li></ul><div class="subclass"><ul><li></li></ul><ul><li></li></ul></div></div>  
  2. <div id="div2" class="topclass"><ul><li></li></ul><div class="subclass"><ul><li></li></ul></div></div>  

YY项目中的例子:

JavaScript代码
  1. //限制每提最少选择一个答案  
  2. var stop=true;  
  3. $(".lisbox").each(function () {  
  4.     //alert($(this).find(".subclass").children('ul').size());  
  5.     var lili = $(this).find("input:checked").length;  
  6.     //alert(lili)  
  7.     if (lili < 1) {  
  8.       stop=false;  
  9.     }  
  10. });  
  11.   
  12. if(!stop){ alert("每个调查最少选择一个答案哦~");return false; }  
  13.   
  14. $.ajax({ ... })  

4. 检查某个元素是不是再另外一个元素中?

XML/HTML代码
  1. <ul><li></li></ul>  
  2.   
  3. <script>  
  4.   $("ul").append("<li>" + ($("ul").has("li").length ? "yes__" : "no_") + "</li>");  
  5.   $("ul").has("li").addClass("full");  
  6. </script>  

5. 遍历保存所有Input内地值

JavaScript代码
  1. <script>  
  2.     $("p").append( $("input").map(function(){  
  3.       return $(this).val();  
  4.     }).get().join(", ") );  
  5. </script>  
  6. ====================================================  
  7. Values: John, password, http://qq.com/  

6.邮件订阅提交

JavaScript代码
  1. <script type="text/javascript">  
  2. function subscribe(){  
  3.     $.post('/ebapi/subscribe.php', {"ispub":1, "email":$("input[name=email]").val()}, function(jsondata){  
  4.     if (jsondata.code == 1){  
  5.        $('.bu_success').css("display", "block");  
  6.        $('.bu_error').css("display", "none");  
  7.        $('.bu_success').html('订阅成功');  
  8.     }else{  
  9.        $('.bu_success').css("display", "none");  
  10.        $('.bu_error').css("display", "block");  
  11.        if (jsondata.code == 2)  
  12.          $('.bu_error').html('您已经订阅了,不需要重复订阅');  
  13.        else if (jsondata.code == -1)  
  14.          $('.bu_error').html('邮箱格式错误,请重新输入');  
  15.        else if (jsondata.code == 0)  
  16.          $('.bu_error').html('订阅失败');    
  17.     }  
  18.    }, 'json');  
  19. }  
  20. $('input[name="email"]').bind('keypress', function(event){  
  21.     if (event.keyCode == '13'){  
  22.         subscribe();  
  23.     }  
  24. });  
  25. $('#subscribeBtn').bind('click', function(){  
  26.    subscribe();  
  27. });  
  28. </script>  
  29. *********************************************  
  30. 返回Json格式:{code: 1}  

7.通用Tab选项卡

JavaScript代码
  1. //tab标签切换  
  2. var $tabcon=$(".tabbox .tabcon .tcon");  
  3. var $tabconliN=$(".tabbox li");  
  4. var $tabconliH=$(".tabbox li[name='tabH']");  
  5. var $tabconliC=$(".tabbox li[name='tabC']");  
  6.   
  7. $tabconliH.hover(function(){  
  8.     $(this).siblings().removeClass("current").addClass("current");  
  9.     var index = $tabconliN.index(this);  
  10.     $tabcon.eq(index).show().siblings('.tcon').hide();  
  11. });  
  12. $tabconliC.click(function(){  
  13.     $(this).siblings().removeClass("current").addClass("current");  
  14.     var index = $tabconliN.index(this);  
  15.     $tabcon.eq(index).show().siblings('.tcon').hide();  
  16. });  
XML/HTML代码
  1. <div class="tabbox">  
  2.     <div class="tit">  
  3.         <ul>  
  4.             <li name="tabC">aaaaaaaaaa</li>  
  5.             <li name="tabC">bbbbbbbbbb</li>  
  6.             <li name="tabC">cccccccccc</li>  
  7.         </ul>  
  8.     </div>  
  9.     <div class="tabcon">  
  10.         <div class="tcon">1111</div>  
  11.         <div class="tcon">2222</div>  
  12.         <div class="tcon">3333</div>  
  13.     </div>  
  14. </div><!-- tabbox -->  

8. 提交问卷实例(抓取页面中所有被选中的Input_value值,及对应的问题ID,输出Json)

JavaScript代码
  1. function showVal(){  
  2. var val=$('.lisbox').map(function(){  
  3.     var pid=$(this).attr('id');  
  4.     var val=$('input:checked',this).map(function(){  
  5.         return $(this).val();      
  6.     }).get();  
  7.     var obj={key:pid,id:val};  
  8.     return obj;  
  9. }).get();  
  10. alert(JSON.stringify(val));  
XML/HTML代码
  1. <div class="lisbox" id="120">  
  2. <div class="lisT l-h-30 co30">1.你从哪里知道的我们的?</div>  
  3. <input type="radio" name="an0" value="316" id="316"><label for="316">电视广告</label>    
  4. <input type="radio" name="an0" value="318" id="318"><label for="318">地铁公交广告</label>  
  5. <input type="radio" name="an0" value="317" id="317"><label for="317">互联网文字广告</label>  
  6. <input type="radio" name="an0" value="315" id="315"><label for="315">互联网视频广告</label>  
  7. <input type="radio" name="an0" value="327" id="327"><label for="327">亲朋好友介绍</label>  
  8. </div>  
  9.   
  10. <div class="lisbox" id="120">  
  11. <div class="lisT l-h-30 co30">2.你从哪里知道的我们的?</div>  
  12. <input type="checkbox" name="an0" value="316" id="316"><label for="316">电视广告</label>    
  13. <input type="checkbox" name="an0" value="318" id="318"><label for="318">地铁公交广告</label>  
  14. <input type="checkbox" name="an0" value="317" id="317"><label for="317">互联网文字广告</label>  
  15. <input type="checkbox" name="an0" value="315" id="315"><label for="315">互联网视频广告</label>  
  16. <input type="checkbox" name="an0" value="327" id="327"><label for="327">亲朋好友介绍</label>  
  17. </div>  
  18. <input type="submit" onClick="showVal()">  

9.JS定期器

XML/HTML代码
  1. clearTimeout()和clearInterval() :  
  2. JS里设定延时:  
  3. 使用SetInterval和设定延时函数setTimeout 很类似。  
  4. setTimeout 运用在延迟一段时间,再进行某项操作。  
  5. setTimeout("function",time) 设置一个超时对象  
  6. setInterval("function",time) //设置一个超时对象  
  7. SetInterval为自动重复,setTimeout不会重复。  
  8. clearTimeout(对象) 清除已设置的setTimeout对象  
  9. clearInterval(对象) 清除已设置的setInterval对象  

 10.JQ(Ajax)实例

JavaScript代码
  1. $("#bt1").click(function(){    
  2.     var name =$("#tx1").val();    
  3.     var URL = "../validate?name="+name+"&date="+new Date().getTime();    
  4.     $.ajax({    
  5.         type:"GET",    
  6.         url:URL,    
  7.         dataType:"xml",    
  8.         success:function(msg){    
  9.             alert(msg);    
  10.             var jqueryObj =$(msg) ;//把后台传来的对象转为JQuery对象    
  11.             alert(jqueryObj);    
  12.             var content = jqueryObj.text();    
  13.             $("#sp1").text(content);    
  14.                 
  15.         }    
  16.     });    
  17. })  

 

 

 

PHP代码
  1. <?php  
  2. header("content-type:text/html;charset=utf-8");  
  3. $username = $_POST['hiusername'];  
  4. $sex = $_POST['hisex'];  
  5. $age = $_POST['hiage'];  
  6. //$json_res = {'username':$username,'sex':$sex,'age':$age};  
  7. $json_res = array("username"=>$username,'sex'=>$sex,'age'=>$age);  
  8. $res = json_encode($json_res);  
  9. file_put_contents("c:/1.txt",$res);  
  10. echo $res;  
  11.   
  12. ?>  
XML/HTML代码
  1. <html>  
  2. <head>  
  3. <title>php jquery json数据传输</title>  
  4. <meta http-equiv="content-type" content="text/html;charset=utf-8" />  
  5. <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"></script>  
  6. <script type="text/javascript">  
  7. $(function(){  
  8.     $('#send').click(function(){  
  9.          $.ajax({  
  10.              type: "post",  
  11.              url: "/php/s1.php",  
  12.              data: {hiusername:$("input[name='username']").val(),hisex:$("input[name='sex'][checked]").val(),hiage:$("input[name='age']").val()},  
  13.              dataType: "json",  
  14.              success: function(msg){  
  15.                   if(msg!=null){  
  16.                          alert("提交成功!")  
  17.                   }  
  18.              },error:function(){  
  19.                          alert("ddddd")  
  20.              }  
  21.          });  
  22.     });  
  23. });  
  24.   
  25. </script>  
  26. </head>  
  27. <body>  
  28. <!-- <form action="/php/s1.php" method="post">  -->  
  29. 姓名:<input type="text" name="username" /><br />  
  30. 性别:<input type="radio" name="sex" value="男" /><input type="radio" name="sex" value="女" /><br />  
  31. 年龄:<input type="text" name="age" />  
  32. <input type="submit" name="sub" id="send" value="提交" />  
  33. <!-- </form> -->  
  34.   
  35. <div id="test"></div>  
  36. </body>  
  37. </html  

 

 一、对CheckBox的操作:

   以这段checkBox代码为例:
 
   <input type="checkbox" name="box"  value="0" checked="checked" /> 
   <input type="checkbox" name="box" value="1" />
   <input type="checkbox" name="box" value="2" />
   <input type="checkbox" name="box" value="3" />
   1.遍历checkbox用each()方法:
       $("input[name='box']").each(function(){});
   2.设置checkbox被选中用attr();方法:
     $("input[name='box']").attr("checked","checked"); 
    在HTML中,如果一个复选框被选中,对应的标记为 checked="checked"。 但如果用jquery alert($("#id").attr("checked")) 则会提示您是"true"而不是"checked",所以判断 if("checked"==$("#id").attr("checked")) 是错误的,应该是 if(true == $("#id").attr("checked"))
  3.获取被选中的checkbox的值:
    $("input[name='box'][checked]").each(function(){
    if (true == $(this).attr("checked")) {
          alert( $(this).attr('value') );
    }
     或者:
    $("input[name='box']:checked").each(function(){
    if (true == $(this).attr("checked")) {
          alert( $(this).attr('value') );
    }
   $("input[name='box']:checked")与 $("input[name='box']")有何区别没试过,我试了用 $("input[name='box']")能成功。
   4.获取未选中的checkbox的值:
 
    $("input[name='box']").each(function(){
          if ($(this).attr('checked') ==false) {
                alert($(this).val());
            }
     });
   5.设置checkbox的value属性的值:
          $(this).attr("value",值);
 
二、 一般都是创建一个js数组来存储遍历checkbox得到的值,创建js数组的方法:
     1.  var array= new Array();
     2. 往数组添加数据:
        array.push($(this).val());
     3.数组以“,”分隔输出:
         alert(array.join(','));
 
  <input type="checkbox" name="myBox" class="chkTwo" value="2" />
  <input type="checkbox" name="myBox" id="chkOne" value="2" />

 

XML/HTML代码
  1. <html>  
  2. <head>  
  3. <script type="text/javascript" src="/jquery/jquery.js"></script>  
  4. <script type="text/javascript">  
  5. $(document).ready(function(){  
  6.   $("button").click(function(){  
  7.     $("div").text($("form").serialize());  
  8.   });  
  9. });  
  10. </script>  
  11. </head>  
  12. <body>  
  13. <form action="">  
  14. username: <input type="text" name="hiusername" value="liuxinxiu" /><br />  
  15. age: <input type="text" name="hiage" value="28" /><br />  
  16. </form>  
  17.   
  18. <button>序列化表单值</button>  
  19. <div></div>  
  20. </body>  
  21. </html>  

 

 

JavaScript代码
  1. $("html,body").animate({scrollTop: $("#box").offset().top}, 1000);   

在底部放一个id是box的标签就可以了。

第一页 上页 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]