前文提到JQuery提供了丰富的内置方法来操作对象集,本文主要介绍JQuery中的那些内置操作属性和DOM结构的方法。

prop还是attr?

从JQuery1.6版开始,新增了prop方法来获取和设置JQuery对象的属性,这里的prop方法和attr方法究竟有什么区别呢?

要弄懂这个问题,我们首先要区别property和attribute两个概念。property主要是针对DOM对象的,而attribute主要是针对HTML标签的。这样对prop和attr这两个方法来说,它们的区别主要在如下几个方面:

1.我们知道对于checkbox这个DOM对象来说,它必然有个选择状态,且它的选择状态只有两种,要么是选中状态,要么是非选中状态,所以不管什么时候我们用prop方法获取其checked值,都能获得一个确定的值,true或false,而对于checkbox的HTML表示来说,它可以简单的表示为<input type="checkbox"/>,这里你可以不用对checked属性赋值,这时,在用attr获取checked值时,其值将是undefined.

2.对于某些HTML标签属性,在DOM对象中将对应不同的属性名,比如<li class="highlight">,其attribute名是class,但是其property名却是className.

3.用prop赋值将是针对其当前的状态赋值,而对于某些属性,attr则是赋予一个初始值。这样prop将永远能动态的改变checkbox的状态,而对某些浏览器来说,attr只能在checkbox被显示在页面上之前改变checked的初始状态,而之后则再也无法改变checked的状态。而且prop能永远获得checkbox的当前状态,而不管checkbox的当前状态如何,attr只能获得初始状态。

4.内置的DOM property不能被移出,而attribute可以。

操作属性

1.prop(name|name,value|name,function(index,oldprop))

2.attr(name|name,value|name,function(index,oldprop))

注意:尽量不要使用prop定义复杂的非内置的属性。当获取属性值时,prop和attr都只能获取对象集内第一个元素的属性。

3.removeProp(name)

4.removeAttr(name)

注意,尽量不要使用属性移除操作,而应该修改属性值

获取对象的内容

1.html([htmlstr]|function(index,oldhtml))

获取或设置对象集中对象的innerHtml

2.text([textstr]|function(index,oldtext))

获取或设置对象集中对象的文本。当对象集中有多个对象时,获取其文本,将把对象集中所有元素,其文本甚至是子孙节点的文本拼接在一起返回。

当设置文本时,若给定的文本串中含有html标签,将被转换。如$("li").text("<p>This is a test.</p>");的结果是得到如下内容

<li>
&lt;p&gt;This is a test.&lt;/p&gt;
</li>

3.val([value]|function(index,oldvalue))

获取或设置checkbox,radio,select这类元素的值。

DOM文档操作

1.元素的插入

before(content[,content]|function(index))

将content元素插入对象集中对象的前面

after(content[,content]|function(index))

将content元素插入对象集中对象的后面

prepend(content[,content]|function(index))

将content元素插入对象集中对象的里面,作为其第一个子女

append(content[,content]|function(index))

将content元素插入对象集中对象的里面,作为其最后一个子女

insertBefore(target)

将对象集中的对象都插入target元素前面

insertAfter(target)

将对象集中的对象都插入target元素后面

insertAfter(target)

将对象集中的对象都插入target元素里面

prependTo(target)

将对象集中的对象都插入target元素里面,作为其第一个子女

appendTo(target)

将对象集中的对象都插入target元素里面,作为其最后一个子女

2.元素的替换

replaceWith(conten|function)

用content来替换对象集中对象

replaceAll(target)

用对象集中所有对象来替换target元素,如果对象集中的对象在DOM文档中,这种替换会使原有对象从原来的位置被移除。

3.元素的删除

empty()

清空对象集中所有对象的子孙元素。

remove([selector])

删除对象集中的所有对象及其子孙元素,若有selector,则只删对象集中符合selector条件的对象及其子孙元素。

detach([selector])

功能和remove一样,只是detach会将被删的对象返回,如果你还需要用到这些对象则用detach。

4.其他操作

clone([withdataandevents] [,deepwithdataandevents])

复制对象集中的对象。

wrap(element|function(index))

用某元素将对象集中的对象分别包含起来。

unwrap()

将对象集中对象的父元素删除。

wrapAll(element)

用某元素将对象集中的所有对象包含起来

wrapInner(element|function(index))

将某元素分别放入对象集中的各对象中。

JQuery知识快览之五—操作属性和结构的更多相关文章

  1. JQuery知识快览之三—JQuery对象集

    本文讲述JQuery对象集的各相关知识 获取JQuery对象集 JQuery对象,和DOM对象是两个不同的东西,JQuery对象可以是DOM对象的封装,但是JQuery对象不只是DOM对象的封装,它还 ...

  2. JQuery知识快览之二—事件

    事件是脚本语言的核心.本文将为大家介绍JQuery支持的一些事件和如何自定义事件 JQuery内置事件 1.Document加载事件 JQuery提供了ready,load,unload三个Docum ...

  3. JQuery知识快览之四—样式

    前面我们获取了对象集,本文介绍怎么控制对象集的样式 基本概念 在一个html页面中,我们有两种方式来控制一个对象的样式,用HTML attribute控制,或者用CSS类来控制,这两种方法虽然都能控制 ...

  4. JQuery知识快览之一—选择器

    阅读指导:本文参考最新的1.10.2版写成,针对用得比较多的1.4版,所有1.5版之后的函数都会注明哪一版新增.对于熟悉1.4版想学1.10版的请直接搜索"新增". JQuery是 ...

  5. JavaScript&&jQuery创建新节点和操作属性对比

    JavaScript创建新节点和操作属性 通过JavaScript原生接口创建节点,在处理上是非常复杂与繁琐的. <!DOCTYPE html> <html lang="e ...

  6. jQuery总结02_jq的dom操作+属性操作

    一:JQuery知识点 *:JQuery的dom操作 *:获取节点.给节点添加内容 *:动态创建dom节点 比如动态创建表格等,在js里面进行完成. *删除节点 这里面的删除就是将其放在了一个地方,并 ...

  7. jQuery 操作属性

    jQuery 操作属性 我们来看看jQuery 操作属性都有哪些???? 属性 css代码!! html代码!! jQuery代码!! 下面做一个小例子 小例子html的代码 小例子jQuery的代码 ...

  8. jQuery 选择器 筛选器 样式操作 文本操作 属性操作 文档处理 事件 动画效果 插件 each、data、Ajax

    jQuery jQuery介绍 1.jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2.jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方 ...

  9. jquery 与javascript关系 ①取元素 ②操作内容 ③操作属性 ④操作 样式 ⑤ 事件 点击变色

    jQuery的min版本和原版功能是一样的,min版主要应用于已经开发成的网页中,而非min版 的文件比较大,里面有整洁的代码书写规范和注释,主要应用于脚本开发过程当中. JQuery是继protot ...

随机推荐

  1. 不等高cell的搭建(一)

    一.界面搭建   1.确定开发模式      如果界面是固定的,可以用xib      界面的一些内容不固定,就用纯代码      cell用什么方式去开发(我们采用纯代码和xib结合的方式)   2 ...

  2. [Reprint]c++中typename和class的区别介绍

    在c++Template中,很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢?   相信学习C++的人对class这个关键字都非常明白,clas ...

  3. C++的STL在C#中的应用

    这里主要讲几个重要的STL在C#中的应用:vector, map, hash_map, queue, set, stack, list. vector: 在C#中换成了list using Syste ...

  4. 认识javascript

    javascript小知识 www.phonegap.com(跨平台开发框架) Cocos2d-Html5(WebGL渲染  javascript语言) creatjs.com(融合了flash动画的 ...

  5. 在TextView上加上下划线或中划线

    在做商城项目是需要用到原价格以及降价后的价格,不可避免用到下划线或中划线  textView.getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG ); //下 ...

  6. 10---Net基础加强

    复习: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst ...

  7. VC6.0 error LNK2001: unresolved external symbol _main(转)

    学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过.产生连接错误的原因非常多,尤其LNK2001错误 ...

  8. 去掉vim的高亮的方法

    使用vim时经常因为误用了组合键而进行了搜索操作,搜索到的内容会被加上背景色,而且背景色一直保持着,就算下一次打开这个文件,还会显示搜索到内容的背景色 在vim中使用一个命令即可去掉: nohl

  9. Android中ListView放入PopupWindow产生问题解决

    今天在做项目时候发现将ListView放入PopupWindow产生问题,ListView放入PopupWindow后 对PopupWindow设置了setFocusable(true)这时候其他的控 ...

  10. Oracle 10g dataguard broker 配置

    环境: OS:rhel6.3_64bit DB:Oracle10gR2 ————————————————————————dataguard broker配置—————————————————————— ...