JQuery日记 2014-04.29

2020-12-06 00:52

阅读:452

标签:jquery

JQuery原型对象(续)

(4).each(callback,args)
迭代JQuery对象上的元素并调用callback参数,如果某次迭代中callback返回false,停止迭代.args为callback的参数,args必须为数组.在callback中this引用的当前迭代的元素.

Test_HTML
body>
div id= "div1">div1div >div id= "div2">div2div >
span id= "span1">span1span >span id= "span2">span2span >span id="span3" >span3 span>
body>

Test_Script
$(function(){
    var $div = $(‘div‘ );
     var args = [":参数" ]
              
     $div.each( function(){
         alert( this.id + arguments[0]);
         return false ;
     },args); //只弹出一次   div1:参 数
});
.each(callback, args)调用了JQuery的静态函数JQuery.each(obj, callback, args)
JQuery.each(obj, callback, args)的源码也比较简单,见注释
   // args is for internal usage only
   each: function( obj, callback, args ) {
                     var value,
                     i = 0,
                     length = obj.length,
                     isArray = isArraylike( obj );
               //如果有参数
               if ( args ) {
                      //如果是类数组
                      //则用使用obj[下标]的方式访问迭代的元素
                      if ( isArray ) {
                            for ( ; i 
(5) .map(callback)
    迭代JQuery对象中的元素,每次迭代执行callback方法,返回callback返回值数组组成的新的JQuery对象.
   
   Test_Html
       body>
        div id= "div1" >div1 div > div id= "div2" >div2 div >
        span id= "span1" >span1 span > span id= "span2" >span2 span > span id ="span3" >span3span>
    body>
     Test_Script
 var $div = $(‘div‘ );
              
     $div.map( function (){
         return this .parentNode;
     }).each( function (){
        alert( this .tagName); //弹出两次 BODY
     }); 
    map源码:
map: function( callback ) {
         return this .pushStack( jQuery.map( this, function ( elem, i ) {
             return callback.call( elem, i, elem );
         }));
    },
    .map(callback)调用$.map()根据其返回的元素数组返回一个新的JQuery对象.
    $.map(elements, callback, arg)源码
map: function( elems, callback, arg ) {
               var value,
                     i = 0,
                     length = elems.length,
                     isArray = isArraylike( elems ),
                      //存放结果的数组
                      ret = [];
               // Go through the array, translating each of the items to their new values
               if ( isArray ) {
                      for ( ; i 

     

JQuery日记 2014-04.29

标签:jquery

原文地址:http://blog.csdn.net/songzheng_741/article/details/24699249


评论


亲,登录后才可以留言!