jQuery的属性模块提供了如下方法
attr/removeAttr
prop/removeProp(1.6)
addClass/removeClass/toggleClass/hasClass
val
提供了几个静态方法以支持JQ对象以上方法,如jQuery.attr 对应 attr,即jq对象的attr方法内部调用了jQuery.attr。其次还有
jQuery.removeAttr -> removeAttr
jQuery.prop -> prop
看代码可发现attr和prop方法中都直接调用的是jQuery.access
attr: function( name, value ) {
return jQuery.access( this, name, value, true, jQuery.attr );
},
prop: function( name, value ) {
return jQuery.access( this, name, value, true, jQuery.prop );
},
最后一个参数分别是jQuery.attr,jQuery.prop。可以想象在jQuery.access中会调用传入的这个函数。下面是jQuery.access的源码
access: function( elems, key, value, exec, fn, pass ) {
var length = elems.length;
// Setting many attributes
if ( typeof key === "object" ) {
for ( var k in key ) {
jQuery.access( elems, k, key[k], exec, fn, value );
}
return elems;
}
// Setting one attribute
if ( value !== undefined ) {
// Optionally, function values get executed if exec is true
exec = !pass && exec && jQuery.isFunction(value);
for ( var i = 0; i < length; i++ ) {
fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
}
return elems;
}
// Getting an attribute
return length ? fn( elems[0], key ) : undefined;
},
当 设置/获取属性的时候遍历jQuery对象,依次调用fn函数。这里的fn可能是jQuery.attr和jQuery.prop。
需要注意的是这里用for遍历elems,这个elems实际是jQuery对象,jQuery对象它是一个ArrayLike。
大概就是如此,剩下的一堆hooks是用来解决浏览器兼容性的问题。如jQuery.attrHooks、jQuery.propHooks、jQuery.valHooks。列举如下
1,IE6/7不完全支持setAttribute,比如不能设置class,for等属性
2,IE6/7中getAttribute获取href / src 属性(相对路径)值与其它浏览器不同
3,IE6/7中获取Button元素的值有bug
4,IE6/7不支持setAttribute设置style / 不支持getAttribute获取style属性值
5,获取tabIndex属性有差异
6,布尔类型属性的修复,如selected,disabled,checked等
7,select和option元素的值修复
分享到:
相关推荐
`.attr()`用于获取或设置元素的属性(attribute),而`.prop()`用于处理元素的属性(property),如checked、selected等状态。 - **事件处理** 进一步优化,提供了更细粒度的控制,例如使用`.on()`方法可以绑定事件...
首先,**选择器**是jQuery的核心功能之一,它允许开发者高效地选取DOM元素。jQuery的选择器语法是基于CSS选择器的,如`$("#id")`选取ID为指定值的元素,`$(".class")`选取具有特定类名的元素,`$("tag")`选取所有...
2. 修改属性:`.attr(attributeName, value)`设置属性值,`.removeAttr(attributeName)`移除属性,`.prop(propertyName, value)`用于处理布尔属性或复杂属性。 3. CSS操作:`.css(styleName, value)`修改样式,`....
在jQuery 1.6版本中,引入了`attr`和`prop`方法的区分,`attr`用于获取或设置元素的特性(attribute),而`prop`则用于处理属性(property),这使得处理DOM元素的状态更加精确。 **jQuery核心概念** 1. **选择器*...
1. **选择器(Selectors)**:jQuery提供了丰富的CSS选择器,如ID选择器 (#id),类选择器 (.class),元素选择器 (element) 等,使我们能够快速定位到页面上的元素。 2. **DOM操作(DOM Manipulation)**:jQuery...
1. **选择器**:jQuery提供了丰富的选择器,如`$("#id")`选择ID为id的元素,`$(".class")`选择所有class为class的元素,`$("tag")`选择所有tag标签。 2. **链式操作**:jQuery对象返回的是自身,因此可以连续调用多...
- **选择器**: jQuery的选择器是基于CSS选择器扩展的,如`$("#id")`选取ID为id的元素,`$(".class")`选取所有class为class的元素。 - **DOM操作**: `$(element).html()`用于获取或设置元素的HTML内容,`$(element)...
1. **属性与样式操作**:`$(selector).attr('attribute')`获取属性值,`$(selector).css('property', 'value')`设置样式属性。 2. **尺寸与位置**:`$(selector).width()`和`.height()`获取元素尺寸,`$(selector)....
`$(element).attr('attributeName', 'value')`用于设置或获取元素属性,`$(element).prop('property')`则用于处理DOM元素的特性,如checked状态或selected选项。 9. **链式调用(Chaining)** jQuery方法返回的是...
3. **属性选择器**:`$('[attribute=value]')`(按属性选择)、`$('[attribute*=value]')`(包含匹配)。 4. **伪类选择器**:`$('element:first')`(首个元素)、`$('element:last')`(最后一个元素)、`$('element...
jQuery中的一切都构建于这个函数之上,或者说都是在以某种方式使用这个函数。这个函数最基本的用法就是向它传递一个表达式(通常由 CSS 选择器组成),然后根据这个表达式来查找所有匹配的元素。 默认情况下, 如果...
### jQuery帮助手册(doc) #### 一、简介 jQuery 是一款优秀的 JavaScript 开发库,它以其简洁、高效和丰富的功能而著称。尤其在 CSS 和 XPath 的支持方面表现卓越,使得开发者能够更加轻松地编写 JavaScript ...
5. **CSS操作(CSS)**:jQuery允许轻松改变样式,如`$(selector).css('property', 'value')`设置样式,`$(selector).addClass('className')`和`.removeClass('className')`管理类名。 6. **动画(Animation)**:`...
1. 选择器:jQuery提供了丰富的选择器,如ID选择器(#id)、类选择器(.class)、元素选择器(element)等,用于快速定位DOM元素。例如,`$("#myID")`将选取ID为"myID"的元素。 2. 获取和设置节点:`$(selector).html()`...
jQuery的选择器是其强大之处之一,它基于CSS选择器,让选取DOM元素变得非常容易。例如: - `$()` 函数用于创建jQuery对象,接受一个CSS选择器作为参数,如 `$('div')` 会选择所有的`<div>`元素。 - `id` 选择器,如 ...
4. **属性操作(Attribute Handling)**:通过`attr('attribute', 'value')`可以设置或获取元素的属性,`removeAttr('attribute')`移除属性,`prop('property', 'value')`用于处理元素的特定属性,如checked状态或...
2. **属性选择器增强**:增加了`attr()`方法,允许开发者获取或设置元素的属性值,同时区分了属性值(attribute)和特性值(property)的区别。 3. **新选择器**:引入了`:first-child`和`:last-child`伪类选择器,...
**jQuery简介** jQuery是一个高效、简洁且功能丰富的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画设计和Ajax交互。jQuery的核心理念是"write less, do more",即通过简短的代码实现复杂的功能...
- **选择器**:jQuery提供了丰富的CSS选择器,如ID选择器(#id)、类选择器(.class)、属性选择器([attribute])等,使得元素选取变得简单直观。 - **DOM操作**:包括添加、删除、查找、替换DOM元素,如`$(selector)....
- `$("[attribute=value]")`:选取属性`attribute`等于`value`的元素。 ### 四、DOM 操作 jQuery 提供了简单的方法来操作DOM元素,如添加、删除和修改元素: - `append()`:在元素内部追加内容。 - `prepend()`:...