一些jquery语句欣赏~

(1)

$("ul li:gt(5):not(:last)")

选择第6个li到倒数第2个li

(2)

一般看到return false,如果是在<a>标签的click事件中,则说明要消除默认跳转。

(3)

$("ul li").remove("li[title!='苹果']"),将title不等于苹果的li删除掉。注意删除的节点还可以继续引用,重新添加回去。如:

var $a=$("ul li").remove("li[title!='苹果']"),然后$("ul li").append($a);

(4)

var b=$("ul li:eq(2)").clone(  ); 
$("ul li").append(b); // 错误的写法

        复制第3个节点,然后添加到ul中,注意如果是上面的写法,则是给每个li的底下都加了一个3号节点,要改成$("ul").append(b);,这才是正确的。

(5)

经常看到点击后,展开折叠效果,再点击又收起。

代码:

$("#f").toggle(
function( ){

$(this).addClass("highlight");         // 还可以趁此机会加个高亮样式

$(this).next( ).hide(1000);

    },

function(  ){
$(this).next(  ).show(1000);
$(this).removeClass("highlight");    

    }

 )             //  这里next(  )用得太赞啦,指向直接兄弟的子节点。

(6)

 这个方法在“随手解救那里见过”,做一个div,然后mousemove第一个div的时候,将其显示在鼠标的旁边。

  $("#f").mousemove( function(e){
    $(this).css("left":e.pageX + 10+"px","top":e.pageY +20+ "px" )       // 最好横坐标,纵坐标都多加一点,避免和鼠标的位置相重合。

});

要注意,最好给#f的节点设置position为absolute,然后left和top才有意义。

e.pageX和e.pageY都是数字,没有像素单位,要注意如果要多加上20px跟鼠标的距离区分开,则:

"left":e.pageX +20+ "px","top":e.pageY +20+ "px"

别写成:

"left":e.pageX + "20px","top":e.pageY + "20px"      // 这样的话会出现问题,会出现拼字符串的想象,比如前面是100,则结果是1020px,而不是我们要的120px,因为js的字符串遇到数字就是拼接,而php里是转换为数字计算。

(7)我们常看到凡客这样的,鼠标移动上去后就有大图。。。实现原理是:

<a href="大图地址"><img src="小图"></a>

把事件注册到<a>上面,然后创建一个新的div,这个div里头有<img>,而大div的img的src正是小<a>标签的href值。然后给大div设置position:absolute,left和top都是鼠标实时的坐标值,便会随着鼠标移动。

(8)

  $("#start").click(function(){
    $("#box").animate({height:300},"slow");
    $("#box").animate({width:300},"slow");
    $("#box").animate({height:100},"slow");
    $("#box").animate({width:100},"slow");
  });

实现简单的动画。

(9)

 var a=$("#fs").css("padding-top")获取padding-top后,想改变它的值。

不可以$("#fs").css("padding-top")="100px",因为前面是个返回值的式子,所以不能赋值。

只能$("#fs").css("padding-top","100px"),如果是要原有基础上加100px,而不是设置为100px,则可以:

 var a=$("#fs").css("padding-top");
 var b=parseInt(a)+100;              // 把单位去掉
$("#fs").css("padding-top",b);     // 把值放进去,而不要用等号赋值的形式

(10)

注册提交完后立马显示信息的程序: 

输入姓名:<input type="text" name="" value="输入姓名" id="f"><br/>
  性别:<input type="radio" name="sex" value="男生" id="s">
            <input type="radio" name="sex" value="女生" id="t">
    婚否:<input type="checkbox" name="marry" id="ff">
  <div id="fff"></div>
   提交按纽:<input type="button" id="sub">

$("#sub").click(function(  ){                                        //  id=sub是提交按纽,点完后会触发事件
var a=$("#f").val(  );                                     //   如果用户什么也没输,val(  )的值是默认给出的值 
var sex=$("#s").is(":checked")?"男生":"女生";                      // 如果选择了就是男生,没选择就是女生
  var m=$("#ff").is(":checked")?"已婚":"未婚";
$("#fff").html("您的名字是:"+a+"性别是:"+sex+"婚否:"+m);          // 触发了id=sub元素上的事件,同时可以改变id=fff上的事件,将其写在事件函数里就可以。
})

(11)

 $("#z").click(
function(  ){
$(this).toggleClass("new,new1,new2,...").html("点击之后的样式").html("点击之后的样式");
}
   )

toggleClass(  )会切换样式,而且没规定就一定是2个,可以给无穷多个,依次切换过去。

(12)

<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<ul>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
</ul>

如果是$("ul li:eq(2)").css("color","red"),只会对第一个ul的第3个li起作用,要换成:$("ul li:nth-child(3)").css("color","red")。

注意:只要不具体到某个li,即某个子项,无论是$("ul“)还是$("ul li")两种方式都是等价的。

$("ul li:even")这里选择的是偶数索引值,所以实际是奇数位置上的数,$("ul li:nth-child(even)")这里直接选择偶数位置上的数,两者完全相反。

(13)

点击完后,按钮变成不可点,$(this).attr("disabled","disabled"),不要写成$(this).disabled="disabled",后者是原生js的写法。

(14)

$("form :password"),form去操作表单的时候中间要有空格,因为form与input之间还有上下级关系。

(15)

 $("ul li:gt(1):lt(4)").css("color","red"),选择了第3到第4个li。所以lt和gt可以组合使用。

(16)

$("#f").attr({src:"22.jpg",title:"dsa"}),给img标签加src属性,还加title属性,凡是加2个以上的时候,就要用{  },里头的数据格式就好象json,不过属性值加不加引号无所谓,但值一定要加引号。

(17) 

 <select name="" id="f" multiple="multiple">
<option value="1" >1
<option value="2">2
<option value="3">3
<option value="4">4
 </select>

$("#f").val(3)这样可以初始选择第3个option。

$("#f").val([2,3]),里头用数组的形式,则可以初始选择两个选项。

注意select的事件,用onchange。

(18)

这个方式蛮有趣的。

$(function(){
function htm(  ){
var str="<p>我们都是好孩子</p>";
return str;
}
$("body").append(htm(  ));
}
)

(19)

<p id="f">我们都是好孩子 </p>

$("#f").click(
function(  ){
alert(1);
}
)
$("#f").clone(true).appendTo("body"),用clone而且带参数true,不仅把节点克隆过来,还把注册的事件带过来。

(20)

<p id="f">我们都是好孩子 </p>
<p id="g">你们都是好孩子 </p>
<p id="s">他们都是好孩子 </p>
<script type="text/javascript" src="jquery-1.5.1.js"> </script>
<script type="text/javascript">
$("p").each(
function(index){
alert(index);
// 结果是0,1,2

alert(this.id); // 结果是f,g,s,注意this.id是原生js取属性的方式,等价于$(this).attr("id")

});

each( )可以传一个形参index,index是从0开始计算的,是每一项的序列号。

(21)

点击“显示”则显示更多内容,点击“隐藏”则将有关内容隐藏。

第一种方法:

$("#f").toggle
function(  ){
$("#s").show(  );
$(this).html("隐藏"); // 记得把按纽的提示文字改变下,交互体验会更好
},
function(  ){
$("#s").hide(  );
$(this).html("显示");
}
)

第二种方法:

$("#f").click(

function( ){

if($("#f").html( )=="隐藏"){ // 点击完后做个判断,如果提示“隐藏”,则说明要将有关内容隐藏

$("#s").hide(  );
$(this).html("显示"); //隐藏后,再把按纽改成显示,为下步操作做准备

}else{

$("#s").show(  );
$(this).html("隐藏");

}

})






评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值