jQuery 操作元素

102 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第16天,点击查看活动详情

jQuery 操作元素属性

        有以下几种属性操作

          原生属性, id class src ...

          自定义属性, getAttribute() ...

          H5 自定义属性, dataset  data-xxx

        jQuery 有三种操作属性的方法

          attr() 和 removeAttr()

          prop() 和 removeProp()

          data() 和 removeData()

1. attr() 和 removeAttr()

       ****1-1. attr()

          使用方法: 元素集合.attr(属性名)

            获取元素的该属性, 主要用来获取标签属性, 包括一些自定义属性

          使用方法: 元素集合.attr(属性名, 属性值)

            设置元素的标签属性, 只是把属性设置在标签上, 当作一个自定义属性使用

            对于原生属性有些有用, 有些没有用

          注意:

            设置的时候, 需要两个参数

            设置的不管是什么数据类型, 都会变成字符串类型

            有的原生属性好使, 有的不好使

     1-2. removeAttr()

          使用方法: 元素集合.removeAttr(属性名)

            删除元素身上的自定义属性

            id class 等属性也可以删除

          注意:

            多用于删除 attr 方法设置的属性

// 1-1. attr() 获取 // console.log((′div′).attr(′class′)) //console.log(('div').attr('id')) // console.log($('div').attr('hello'))

 // 1-1. attr() 获取  
 console.log($('div').attr('class'))   
 console.log($('div').attr('id'))    
 console.log($('div').attr('hello'))
 //  attr() 设置    
 $('div').attr('a', '你好 世界')   
 $('div').attr('id', '你好 世界')  
 $('div').attr('a', 100)   
 console.log($('div').attr('a'))
//  removeAttr()
$('div').removeAttr('class')  
$('div').removeAttr('id')  
$('div').removeAttr('hello')

  2. prop() 和 removeProp()

        2-1. prop()

          使用方法: 元素集合.prop(属性名)

            即获取元素的原生属性, 也可获取元素的自定义属性

            但 attr 方法设置的自定义属性他获取不到

          使用方法: 元素集合.prop(属性名, 属性值)

            主要设置元素的原生属性, 也可以设置自定义属性

            他设置的自定义属性不会显示在标签上, 而是存储在元素身上

          注意:

            设置的自定义属性不会显示在标签上

            你设置的时候是什么数据类型, 获取到的时候还是什么数据类型

            attr 设置的自定义属性他拿不到

        2-2. removeProp()

          使用语法: 元素集合.removeProp(属性名)

            删除元素的属性, 但是只能删除由 prop 设置的自定义属性

            原生属性 id class ... 不能删除

// 2-1. prop()   
$('div').prop('id', 'abcdefg')
// 使用 prop 设置了一个自定义属性    
$('div').prop('abc', 100)  
$('div').prop('aa', 200)     
console.log(typeof $('div').prop('abc'))
// attr 设置的他拿不到    
$('div').attr('bcd', 'hello')   
console.log($('div').prop('bcd'))
// 2-2. removeProp()   
$('div').removeProp('abc') 
$('div').removeProp('id')  
console.dir($('div'))

 3. data() 和 removeData()

        3-1. data()

          使用方法: 元素集合.data(属性名)

            获取使用 data() 方法存储的数据, 获取元素身上 data-xxx 的属性

          使用方法: 元素集合.data(属性名, 属性值)

            设置的时候, 只是把数据存储在元素身上的某一个对象空间内

            但是不会出现在标签上, 不会由 data-xxx 的属性出现

          注意:

            可以获取元素标签上 data-xxx 的属性

            但是不能设置标签上 data-xxx 的属性

        3-2. removeData()

        只能删除由 data() 方法设置的属性

          不能删除元素身上 data-xxx 的属性

// 3-1. data() 获取  
console.log($('div').data('index'))
// 3-2. data() 设置    
$('div').data('abcde', 200)
// 3-3. removeData()   
$('div').removeData('index')  
$('div').removeData('abcde')   
console.log($('div'))

jQuery 获取元素尺寸

获取元素尺寸有三套方法四种使用方式

        不管在页面是不是占位, 这些方法都是获取元素的尺寸

1. width() 和 height()

        使用方法: 元素集合.width() 或者 元素集合.height()

        获取的是元素内容位置的尺寸

console.log('width: ', $('div').width())\

    console.log('height: ', $('div').height())\

 2. innerWidth() 和 innerHeight()

        使用方法: 元素集合.innerWidth() 或者 元素集合.innerHeight()

        获取的是元素 内容 + padding 区域的尺寸

console.log('innerWidth: ', $('div').innerWidth())\

    console.log('innerHeight: ', $('div').innerHeight())\

 3. outerWidth() 和 outerHeight()

        使用方法: 元素集合.outerWidth() 或者 元素集合.outerHeight()

        获取的是元素 内容 + padding + border 区域的尺寸

console.log('outerWidth: ', $('div').outerWidth())\

    console.log('outerHeight: ', $('div').outerHeight())\

 4. outerWidth(true) 和 outerHeight(true)

        使用方法: 元素集合.outerWidth(true) 或者 元素集合.outerHeight(true)

        获取的是元素 内容 + padding + border + margin 区域的尺寸

console.log('outerWidth(true): ', $('div').outerWidth(true))

    console.log('outerHeight(true): ', $('div').outerHeight(true))\

jQuery 操作元素位置

        操作元素相对于某一个点的位置关系

1. offset()

        一个读写方法

          使用方法: 元素集合.offset()

          返回值: 一个对象, 里面包含一个 x 信息一个 y 信息

          相对谁: 相对页面左上角的绝对坐标

          注意: 读取出来是一个对象, 需要值得时候 要继续 .

                   不能继续链式编程

console.log('offset: ', $('div').offset().top)\

    console.log('offset: ', $('div').offset().left)\

设置

          使用方法: 元素集合.offset({ top: xxx, left: xxx })

          设置: 是相对于页面左上角的绝对位置

          举例: $('div').offset({ top: 30, left: 30 })

            一定会把这个 div 放在距离页面左上角 30 30 的位置

          注意: 设置的时候, 父子元素都要动要考虑先后顺序

$('div').offset({ top: 30, left: 30 })\

\

2. position()

        一个只读的方法

          使用方法: 元素集合.position()

          返回值: 一个对象, 里面包含一个 x 信息一个 y 信息

          就是元素的定位关系

          如果你定位的是 right 和 bottom, 那么会自动计算成 left 和 top

console.log($('div').position())\

    console.log($('p').position())\

    $('p').position()