前言: 接上一篇博客: 【前端】:jQuery上

一、jQuery属性操作

① attr(设置或返回自定义属性值)

input、select、textarea框中的内容, 可以通过attr来获取,但是如果你在input输入框中输入新的值,用attr是取不到input框新输入的值的!! 此时取到的仍是原来input框的文本内容(value). 请看下面的例子:

<input id="i1" type="text" checked="checked" value="123"/>

原本text框的内容是123,用attr()或val()都可以获取值,但当我将text框的内容改为12334时,用attr()取到的值仍是123!!! 此时要想到到新输入的值就必须用val()

② removeAttr(删除自定义属性)

<input id="i1" type="button" value="开关" name=“James”/>

> $('#i1')
< [<input id=​"i1" type=​"button" value=​"开关" name=​"James">​]
> $('#i1').removeAttr('name')
< [<input id=​"i1" type=​"button" value=​"开关">​]

③ prop(专门用于checkbox,radio)

<input id="i1" type="checkbox" checked="checked" />

④ removeProp(用来删除由.prop()方法设置的属性集)

<input id="i1" type="checkbox" checked="checked" />

> $('input:checkbox').prop('disabled',true)
< [<input id=​"i1" type=​"checkbox" checked=​"checked" disabled>​]
> $('input:checkbox').removeProp('disabled')
< [<input id=​"i1" type=​"checkbox" checked=​"checked">​]

再讲一个点: prop(专门用于checkbox,radio),为什么专用于checkbox,radio?? 我上网查了下,查到这句话: jquery老版本没有prop方法,有了prop方法后统一对checkbox,radio用prop方法,其他表单元素沿用用attr方法,对单复选按钮要用attr的话可能导致动态元素或者多次事件不生效(问题实例: 用attr设置checked属性  然后用remveoveAttr去掉checked 但是在火狐上发现代码虽然是显示checked 但是页面上也没显示选中)。

其实我是不信的,于是我在谷歌和360浏览器下测试,发现是没问题的(是jQuery版本对此升级??)

我也比较懒,没去下载火狐浏览器测试下哈哈~~ 具体可以看看这篇博客: radio、checkbox选中问题

二、jQuery CSS

1. CSS

① css(获取和设置匹配元素的样式属性)

<div>
<span>And Again</span>
</div> # 获取样式值
> $('span').css('color')
< "rgb(0, 0, 0)" # 设置样式值
> $('span').css('color','red')
< [<span style=​"color:​ red;​">​And Again​</span>​]
> $('span').css({'color':'#dddddd','background':'blue'})
< [<span style=​"color:​ red;​">​And Again​</span>​]
> $('span')
< [<span style=​"color:​ rgb(221, 221, 221)​;​ background:​ blue;​">​And Again​</span>​]

2. 位置

① offset(获取和设置匹配元素在整个html的相对坐标)

<div id="i1"></div>
<div style="height: 100px;width:100px;overflow: auto">
<p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
<p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
<p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
</div>
<div id="i2"></div>
<div style="height: 1000px;"></div> # 获取偏移量
> $('#i2').offset()
< Object {top: 108, left: 8}
> $('#i2').offset().top
< 108
> $('#i2').offset().left
< 8
> $('#i2').offset({top:100,left:300})
< [<div id=​"i2" style=​"position:​ relative;​ top:​ -8px;​ left:​ 292px;​> ">​</div>​]
< $('#i2').offset()
> Object {top: 100, left: 300}

 position(获取匹配元素相对父元素的坐标)

<div style="height: 200px">000</div>
<div style="position: relative">
<div style="height: 100px">123</div>
<div id="i1" style="position: absolute">456</div>
</div> > $('#i1').position()
< Object {top: 100, left: 0}
> $('#i1').position().top
<

③ scrollTop(获取和设置垂直滚动条到顶部的坐标)

<div style="height: 100px;width:100px;overflow: auto">
<p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
<p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
<p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
</div>
<div style="height: 1000px;"></div> # 获取滚动条坐标
> $(window).scrollTop()
< 0
> $('div').scrollTop()
< 424 # 设置滚动条坐标
> $(window).scrollTop(200)
< [Window]
> $(window).scrollTop()
<

④ scrollLeft(获取和设置水平滚动条到顶部的坐标)

<div style="height: 100px;width:100px;overflow: auto">
<p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
<p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
<p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
</div>
<div style="height: 1000px;width: 2000px"></div> # 获取
> $(window).scrollLeft()
< 0
# 设置
> $(window).scrollLeft(300)
< [Window]
> $(window).scrollLeft()
< 300

既然写到滑轮,就问一个问题吧,如何判定滑轮到了底部??(下篇博客会用到~)

可用:浏览器界面高度+滑轮滚动高度=HTML文档高度 (重要)

$(window).height()+$(window).scrollTop()==$(document).height()

三、for循环

之前写JS时讲过两种for循环,jQuery在JS循环的基础上做了进一步的封装,有下面两种for循环:

1. $.each()

//用下面的方法,可以即输出序号,也能输出元素
var userList=[11,22,33,44];
$.each(userList, function(i,item){
console.log(i,item);
});

2. 选择器.each()

   //用选择器找到所有的复选框,实现反选的功能
$("table input[type='checkbox']").each(function(){
//jQuery封装,循环执行该方法
//$(this)表示当前执行的元素
var isChecked = $(this).prop("checked");
if(isChecked){
$(this).prop("checked", false);
}else{
$(this).prop("checked", true);
}
})

四、事件

1. 页面载入事件: ready()

当文档树准备就绪,就绑定函数里面的事件。eg:请求图片时,一旦放图片的框准备好就执行JS,不用等到图片加载完成后再执行。

页面载入事件有两种写法,个人推荐方式二:

        // 特殊事件: 当文档树准备就绪,就绑定函数里面的事件 eg:请求图片,
// 一旦放图片的框准备好就执行JS,不用等到图片加载完成再执行
$(document).ready(function () {
//方式一
});
$(function () {
//方式二
});

2. 绑定事件的方式

绑定定事件有3种方式:

① 最基本的jQuery事件绑定,一刷新就找到标签元素并绑定。

           //最基本的jQuery事件绑定
$("li").click(function () {    //为所有的li标签绑定一个事件,一点击就执行
var temp = $(this).text();
alert(temp);
});

② bind: 为每个匹配元素的特定事件绑定事件处理函数, 一刷新就找到标签元素并绑定(同上)。

           //绑定事件方式二:给所有的li标签绑定click事件
$("li").bind("click", function () {
var temp = $(this).text();
alert(temp);
});

③事件委派: delegate; 默认不绑定,什么时候触发什么时候绑定并立马执行,效率高

            //给ul里面的li绑定一个click事件,一点则执行
//绑定事件的方式三:默认不绑定,什么时候触发什么时候绑定并立马执行,效率高
$("ul").delegate("li", "click", function () {
var temp = $(this).text();
alert(temp);
});

  

【前端】:jQuery下的更多相关文章

  1. FancySelect – 更好用的 jQuery 下拉选择框插件

    FancySelect 这款插件是 Web 开发中下拉框功能的一个更好的选择.FancySelect 使用方便,只要绑定页面上的任何 Select 元素,并调用就 .fancySelect() 就可以 ...

  2. Web前端JQuery入门实战案例

    前端jquery入门到实战 为什么要学习Jquery?因为生活. 案例: <!DOCTYPE html> <html lang="zh-CN"> <h ...

  3. Web前端JQuery面试题(二)

    Web前端JQuery面试题(二) 1.请写出jquery的语法? <script type="text/javascript"> $(document).ready( ...

  4. Web前端JQuery面试题(一)

    Web前端JQuery面试题(一) 一:选择器 基本选择器 什么是#id,element,.class,*,selector1, selector2, selectorN? 答: 根据给定的id匹配一 ...

  5. 可控制导航下拉方向的jQuery下拉菜单代码

    效果:http://hovertree.com/texiao/nav/1/ 代码如下: <!DOCTYPE html> <html> <head> <meta ...

  6. jQuery下拉友情链接美化效果代码分享

    这篇文章主要介绍了jQuery下拉友情链接美化效果,很实用的代码,推荐给大家,有需要的小伙伴可以参考下. 文实例讲述了jQuery下拉友情链接美化效果,jQuery下拉友情链接美化代码是一款基于jQu ...

  7. 20款jquery下拉导航菜单特效代码分享

    20款jquery下拉导航菜单特效代码分享 jquery仿京东商城左侧分类导航下拉菜单代码 jQuery企业网站下拉导航菜单代码 jQuery css3黑色的多级导航菜单下拉列表代码 jquery响应 ...

  8. jquery下php与ajax的互传数据(json格式)自我总结

    研究了一整天的json数据与ajax的数据传输,现在进行一个小的自我总结,仅供参考 1.关于ajax的认识 $.ajax(),是jquery下包装好的一个函数:参考地址:http://www.w3sc ...

  9. 网站静态化处理—web前端优化—下【终篇】(13)

    网站静态化处理—web前端优化—下[终篇](13) 本篇继续web前端优化的讨论,开始我先讲个我所知道的一个故事,有家大型的企业顺应时代发展的潮流开始投身于互联网行业了,它们为此专门设立了一个事业部, ...

  10. jquery 下拉框 收藏

    jquery 下拉框  Query获取Select选择的Text和Value: 语法解释: 1. $("#select_id").change(function(){//code. ...

随机推荐

  1. Oracle的一些命令

    sqlldr: 一般用于导入以任何后缀结束的文件,我这次就是因为要导入一张以.20160101为后缀的文件,当初简直束手无策 结合input.ctl使用,可以在DOS下使用,可以对一张表导入数十万,百 ...

  2. Oracle数据库中的函数

    1.随机数函数:DBMS_RANDOM.RANDOM )) FROM DUAL; --产生一个100以内的随机数 *dbms_random.value) FROM dual; --产生一个100-10 ...

  3. js原生设计模式——3简单工厂模式\简单工厂模式封装简单对象

    1.Factory基本写法 <!DOCTYPE html><html lang="en"><head>    <meta charset= ...

  4. js原生设计模式——3简单工厂模式\js面向对象编程实例

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  5. AdapterViewFlipper的功能和用法

    AdapterView继承了AdapterViewAnimator,它也会显示Adapter提供的多个View组件,但每次只能显示一个View组件,程序可通过showPrevious和showNext ...

  6. PHP Memcached 实现简单数据库缓存

    Memcache常用方法 Memcache::add — 添加一个值,如果已经存在,则返回false Memcache::addServer — 添加一个可供使用的服务器地址 Memcache::cl ...

  7. EFCore扩展:IQueryable(linq)或sql执行的查询缓存与清理

    前言 上一篇讲述了执行sql和配置的一些功能,这篇说明IQueryable(linq)或执行sql的查询缓存与清理,包括扩展到将缓存存储到Redis中. 扩展类库源码: github:https:// ...

  8. ER图,以及转化成关系模式

    1.找出条件中的实体(矩形),属性(椭圆),关系(菱形)关系分为1:1,1:N,M:N,列出ER图 2. -1:1联系的转换方法 -两个实体分别转化为一个关系模式,属性即是本来的属性 -关系可以与任意 ...

  9. HDU5835

    Danganronpa Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total ...

  10. ubuntu 更新引导命令

    sudo update-grub 运行结果: Generating grub configuration file ...Warning: Setting GRUB_TIMEOUT to a non- ...