jQuery知识盲点

一、属性操作

元素的尺寸

width() height()

innerWidth() innerHeight()

 outerWidth() outerHeight()

 

$('div').width() ;  //width

$('div').innerWidth() ;  //width + padding

$('div').outerWidth() ;  //width + padding + border

$('div').outerWidth(true);  //width + padding + border + margin

 

//$('#div1').width(200);
    
    //$('#div1').innerWidth(200);   //width : 200 - padding
    
    //$('#div1').outerWidth(200);     //width : 200 - padding - border
    
    $('#div1').outerWidth(200,true);   //width : 200 - padding - border - margin

 

    
    //alert( $('#div1').get(0).offsetWidth );   //原生JS是获取不到隐藏元素的尺寸
    
    alert( $('#div1').width() );  //JQ是可以获取隐藏元素的尺寸
//alert( $(window).height() );     //可视区的高
    
    alert(  $(document).height()  );  //页面的高
//alert( $(document).scrollTop() );   //滚动距离
        
        //$(document).scrollTop()  == $(document).height() - $(window).height()

 

 

 

二、DOM操作

insertBefore() before()

insertAfter() after()

appendTo() append()

prependTo() prepend()

append() : 把元素添加到指定的节点的里面的最后

prepend() : 把元素添加到指定的节点的里面的最前面

before() : 把元素添加到指定的节点的前面

after() : 把元素添加到指定的节点的后面

 

 1.insertBefore

<body>
<div>div</div>
<span></span>

<script>
    $(function () {
        $('span').insertBefore($('div'));
        //把span 标签放到div的前面,类似剪切功能与js的用法一致
        //结果显示
       /* 
        <span>span</span>
        <div>div</div>
        */
    });
</script>

</body>

2、insertAfter() 

在原生js中是没有改方法的,用法与insertBefore类似

3.appendTo()

与原生的js中appendchild 用法类似的

<body>
<span>span</span>
<div>div</div>

<script>
    $(function () {
        $('span').appendTo($('div'));
        //结果显示 span在div里面的最后位置
        /*
         <div>
            div
             <span>span</span>
         </div>
         */
    });
</script>

</body>

4.prependTo()

<body>
<span>span</span>
<div>div</div>
<script>
    $(function () {
        $('span').prependTo($('div'));
        //结果显示 span在div里面的最前的位置
        /*
         <div>
             <span>span</span>
               div
         </div>
         */
    });
</script>
</body>

 before()  after()  append()  prepend()与之前是对应的

如before()

<body>
<span>span</span>
<div>div</div>
<script>
    $(function () {
        $('span').before($('div'));
        //结果显示 这个before更像动词,把div放到了span的前面,
        /*
         <div>div</div>
         <span>span</span>
         */
    });
</script>
</body>

三、get JQ转为原生的

$(function(){
    
    //alert( $('div').get(0).innerHTML );get() : 把JQ转成原生JS , 默认情况获取的是一个原生的集合,那么可以通过参数来找到集合中的指定项
    
    alert( $('div').eq(0).html() );
    
});

 

四、事件细节

ev : event对象

在jquery中直接用ev 不需要再向js要做兼容处理var ev=ev || window.event

<body>
<span>span</span>
<div>div</div>
<script>

    /*$('div').click(function(ev){

     //ev : event对象

     //ev.pageX(相对于文档的) 与js中的 clientX(相对于可视区)类似

     //ev.which(键值) : js keyCode
        
     ev.preventDefault();  //阻止默认事件

     ev.stopPropagation();  //阻止冒泡的操作

     return false;   //阻止默认事件 + 阻止冒泡的操作

     });*/

    $('div').one('click',function(){  //只执行事件一次
        alert(123);
    });

</script>
</body>

 

posted @ 2016-03-23 23:21  名字不能缺  阅读(145)  评论(0编辑  收藏  举报