jquery中attr、prop、data区别与用法分析

jQuery中attr、prop、data区别与用法分析

在使用jQuery操作DOM时,我们经常会使用attr、prop、data这三个方法。它们都可以用来获取和设置元素的属性或数据,但是它们的用法和作用有所不同。

1. attr方法

attr方法可以用来获取和设置元素的属性值,如src、href、class、title等等。attr方法针对的是html属性,它不能获取和设置自定义的数据。

1.1 获取属性值

// 获取a标签的href属性
var link = $('a').attr('href');
console.log(link); // 'http://www.example.com'

// 获取img标签的alt属性
var alt = $('img').attr('alt');
console.log(alt); // '图片描述'

1.2 设置属性值

// 设置a标签的href属性
$('a').attr('href', 'http://www.google.com');

// 设置img标签的alt属性
$('img').attr('alt', 'The description of image');

2. prop方法

prop方法也可以用来获取和设置元素的属性值,但是它针对的是DOM属性,可以用来获取和设置自定义的数据,比如input元素的checked属性。

2.1 获取属性值

// 获取input元素的value属性
var value = $('input').prop('value');
console.log(value);

// 获取input元素的checked属性
var isChecked = $('input').prop('checked');
console.log(isChecked);

2.2 设置属性值

// 设置input元素的value属性
$('input').prop('value', 'new value');

// 设置input元素的checked属性
$('input').prop('checked', true);

3. data方法

data方法用来获取和设置自定义的数据,它不会操作DOM属性或html属性,而是将数据存储在元素的内存中。

3.1 获取数据

// 获取存储在元素的数据
var name = $('div').data('name');
console.log(name); // Jack

// 获取存储在元素的数据
var age = $('div').data('age');
console.log(age); // 18

3.2 设置数据

// 存储数据到元素中
$('div').data('name', 'Lucy');

// 存储数据到元素中
$('div').data('age', 20);

4. 区别与应用场景

  • attr:用来获取和设置HTML属性,针对的是DOM中的具体属性,无法获取和设置自定义数据。
  • prop:用来获取和设置DOM属性或者自定义数据,可以获取和设置input元素的checked属性等自定义数据。
  • data:用来获取和设置自定义数据,针对的是元素的内存中的数据,不会直接操作DOM属性。

在实际开发中,我们可以采用以下场景应用这三种方法:

  • 对于HTML属性的获取和设置,使用attr方法;
  • 对于DOM属性的获取和设置,使用prop方法;
  • 对于自定义数据的存储和获取,使用data方法。

比如,在表格中存储额外的数据时,我们可以使用data方法:

<table>
  <tr data-id="1" data-name="Tom" data-sex="male">
    <td>1</td>
    <td>Tom</td>
    <td>male</td>
  </tr>
  <tr data-id="2" data-name="Lily" data-sex="female">
    <td>2</td>
    <td>Lily</td>
    <td>female</td>
  </tr>
</table>
// 获取表格中元素的自定义数据
$('table tr').each(function() {
  var id = $(this).data('id');
  var name = $(this).data('name');
  var sex = $(this).data('sex');
  console.log('id:', id, 'name:', name, 'sex:', sex);
});

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jquery中attr、prop、data区别与用法分析 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • jQuery常见动画效果实现介绍

    jQuery常见动画效果实现介绍 jQuery常见动画效果的实现非常常用,本文将介绍jQuery中常见的动画效果及其实现方法。 1. 常见动画效果 1.1. show() 和 hide() show() 和 hide()是最常用的两个动画效果,分别用于显示和隐藏一个元素。它们的语法非常简单: $(selector).show(); $(selector).h…

    jquery 2023年5月28日
    00
  • jQuery UI旋转器类选项

    jQuery UI旋转器类选项攻略 jQuery UI的旋转器类选项是一个强大的JavaScript库,它提供了许多选项和功能,以便创建自定义的旋转器。其中,旋转器类选项用于设置旋转器的样式。以下是详细攻略,含两个示例,演示如何使用旋转器类选项: 步骤1:引入库 在使用之前,需要先在中引入jQuery库和jQuery UI库。可以通过以下方式引入: <…

    jquery 2023年5月9日
    00
  • 如何使用jQuery EasyUI Mobile为手机设计数据列表

    如何使用jQuery EasyUI Mobile为手机设计数据列表 准备工作 要开始使用jQuery EasyUI Mobile,需要引入如下三个文件: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>jQu…

    jquery 2023年5月12日
    00
  • jQWidgets jqxNavigationBar getContentAt()方法

    以下是关于 jQWidgets jqxNavigationBar 组件中 getContentAt() 方法的详细攻略。 jQWidgets jqxNavigationBar getContentAt() 方法 jQWidgets jqxNavigationBar 的 getContentAt() 方法用于获取指定索引位置的导航栏项的内容。 语法 // 获取…

    jquery 2023年5月12日
    00
  • jQWidgets jqxListMenu showFilter属性

    jQWidgets jqxListMenu showFilter属性详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqListMenu是组件之一。本文将详细介绍jqxListMenu的showFilter属性包括用法、语法和示例。 showFilter属性的基本语法 showFilter属性的基本语法如下: $(‘#j…

    jquery 2023年5月10日
    00
  • jQuery stop()方法

    当我们使用jQuery时,经常会出现需要停止动画或效果的情况。这时候就可以使用stop()方法了。 前置知识 在深入了解stop()方法之前,需要先了解一下jQuery中的动画队列、动画链、以及动画速度。 队列(queue): 在jQuery中,每个元素都有一个对应的队列(queue),将要执行的动画就会被存储在这个队列中。当动画效果被删除后,这个队列就可以…

    jquery 2023年5月12日
    00
  • jQWidgets jqxDocking windowsOffset属性

    jQWidgets 是一个流行的 JavaScript UI 库,提供了许多可定制的 UI 组件。其中一个组件是 jqxDocking,它是一个用于创建可拖动窗口的控件。jqxDocking 组件提供多个属性,其中之一是 windowsOffset。下面是关于 jqxDocking 的 windowsOffset 属性的详细攻略: windowsOffset…

    jquery 2023年5月11日
    00
  • jQuery简单实现遍历数组的方法

    为实现遍历数组的方法,可以使用jQuery中提供的$.each()方法,该方法接收两个参数: 第一个参数是一个数组或类数组对象。 第二个参数是一个回调函数,该回调函数接收两个参数: 第一个参数是当前遍历到的数组中元素的索引序号或属性名。 第二个参数是当前遍历到的数组中元素的值或属性值。 下面以两个示例说明如何使用jQuery实现遍历数组的方法。 示例1:遍历…

    jquery 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部