玩明白了吗-- > jQuery(四)

前言

  学完 javaScript 语言再学习 jQuery ,用起来是真的又方便,又舒服,想要学习 javaScript 基础的同学,后续我会在专门的专栏持续更新 javaScript 的知识,今天继续来操作我们的 jQuery 。😏

一、jQuery 属性操作

1.1 元素固有属性值 prop()

  元素固有属性值的意思就是元素本身自带的属性。

  • 举例

    <a href="#"></a>
    <img src="" alt="">
    

    上述 a 标签的 href 属性和 img 标签的 src、alt 属性就是元素本身自带的属性。

语法

  • 获取属性语法

    prop('属性')
    
  • 设置属性语法

    prop('属性','属性值')
    

1.2 元素自定义属性值 attr()

  元素自定义属性值意思就是用户自己给元素添加的属性,我们称为自定义属性。比如给 div 添加 index = “1”。

语法

  • 获取属性语法

    attr('属性')
    
  • 设置属性语法

    attr('属性','属性值')
    

该方法也可以获取 H5 自定义属性。

1.3 数据缓存 data()

  data() 方法可以在指定的元素上存取数据,并不会修改 DOM 元素结构,一旦页面刷新,之前存放的数据都将被移除。

语法

  • 附加数据语法

    // 向被选元素附加数据
    data('name', 'value')
    
  • 获取数据语法

    // 向被选元素获取数据
    data('name')
    

代码示例

<body>
    <span>数据缓存</span>


    <script src="./jQuery.js"></script>
    
    <script>
        // 数据缓存
        $('span').data('name', 'abcd')
        console.log($('span').data('name'))
    </script>

</body>

注意:还可以读取 HTML5 自定义属性 data-index ,得到的是数字型。

1.4 jQuery 文本属性值

  常见操作有三种:html() / text() / val() ;主要针对元素的内容还有表单的值操作。

语法

  • 普通元素内容 html()

    // 获取元素的内容
    html()
    // 设置元素的内容
    html('内容')
    
  • 普通元素文本内容 text()

    // 获取元素的文本内容
    text()
    // 设置元素的文本内容
    text('文本内容')
    
  • 表单的值 val()

    // 获取表单的值
    val()
    // 设置表单的值
    val('内容')
    

注意:html() 可识别标签,text() 不识别标签。

二、jQuery 元素操作

  元素操作主要讲的是用 jQuery 方法,操作标签的遍历、创建、添加、删除等操作。

2.1 遍历元素

  jQuery 隐式迭代是对同一类元素做了同样的操作,如果想要给同一类元素做不同操作,就需要用遍历。

语法

  • 语法1

    $('div').each(function (index, domEle) {
         xxx;})
    
  • 参数说明

    • each() 方法遍历匹配的每一个元素,主要用 DOM 处理,each 每一个。
    • 里面的回调函数有 2 个参数:index 是每个元素的索引号; domEle 是每个 DOM 元素对象,不是 jQuery 对象。
    • 若想要使用 jQuery 方法,需要给这个 DOM 元素转换为 jQuery 对象,例: $(domEle)
  • 语法2

    $.each(object, function (index, element) {
         xxx;})
    
  • 参数说明

    • $each() 方法可用于遍历任何对象,主要用于数据处理,比如数组,对象。
    • 里面的函数有 2 个参数:index 是每个元素的索引号, element 遍历内容。

注意:以上方法用于遍历 jQuery 对象中的每一项,回调函数中元素为 DOM 对象,想要使用 jQuery 方法需要转换。

代码示例

<body>
    <div class="box">
        <div></div>
        <div></div>
        <div></div>
        <div></div>
    </div>

    <script src="https://code.jquery.com/jquery-3.6.0.js"></script>
    <script>
        var colors = ['red', 'blue', 'green', 'orange']
        // each 遍历元素
        $('.box div').each(function (index, item) {
   
            // item 是一个 dom 对象,需要转换 $(item)
            $(item).css('background-color', colors[index])
        })
    </script>
</body>

效果如下

2.2 创建、添加、删除

语法

  • 创建

    // 动态的创建了一个 <li> 标签
    $('<li></li>')
    
  • 内部添加

    // 把内容放入匹配元素内部最后面
    element.append('内容')
    // 把内容放入匹配元素内容最前面
    element.prepend('内容')
    
  • 外部添加

    // 把内容放入目标元素后面
    element.after('内容')
    // 把内容放入目标元素前面
    element.before('内容')
    
  • 删除元素

    // 删除匹配的元素(本身)
    element.remove()
    // 删除匹配的元素集合中所有的子节点
    element.empty()
    // 清空匹配的元素内容
    element.html('')
    

三、jQuery 尺寸 & 位置操作

3.1 jQuery 尺寸操作

语法 用法
width() / height() 取得匹配元素宽度和高度值,只算 width / height
innerWidth() / innerHeight() 取得匹配元素宽度和高度值 ,包含 padding
outerWidth() / outerHeight() 取得匹配元素宽度和高度值 ,包含 padding、border
outerWidth(true) / outerHeight(true) 取得匹配元素宽度和高度值,包含 padding、border、margin
  • 以上参数为空,则是获取相应值,返回的是数字型。
  • 如果参数为数字,则是修改相应值。
  • 参数可以不必写单位。

代码示例

<body>
    <div class="box"></div>

    <script src="https://code.jquery.com/jquery-3.6.0.js"></script>
    <script>
        // 获取元素的宽度
        console.log($('.box').width())
        // 获取元素的宽度,包含内边距
        console.log($('.box').innerWidth())
        // 获取元素的宽度,包含内边距,边框
        console.log($('.box').outerWidth())
        // 获取元素的宽度,包含内边距,边框,外边距
        console.log($('.box').outerWidth(true))
    </script>
</body>

3.2 jQuery 位置操作

语法

  • offset() :设置或获取元素偏移。
    • offset() 方法设置或返回被选元素相对于文档的偏移坐标,跟父级没有关系。
    • 该方法有 2 个属性 lefttopoffset().top 用于获取距离文档顶部的距离,offset().left 用于获取距离文档左侧的距离。
    • 可以设置元素的偏移: offset({top: 10,left: 30})
  • position() :获取元素偏移。
    • position() 方法用于返回被选元素相对于带有定位的父级偏移坐标,如果父级都没有定位,则以文档为准。
    • 该方法有 2 个属性 lefttopposition().top 用于获取距离定位父级顶部的距离,position().left 用于获取距离定位父级左侧的距离。
    • 该方法只能获取。
  • scrollTop() / scrollLeft() :设置或获取元素被卷去的头部和左侧。
    • scrollTop() 方法设置或返回被选元素被卷去的头部。
    • 不写参数是获取,参数为不带单位的数字则是设置被卷去的头部。

代码示例

<body>
    <div class="box">
        <div class="child"></div>
    </div>

    <script src="https://code.jquery.com/jquery-3.6.0.js"></script>

    <script>
        // 获取相对于文档的偏移坐标
        console.log($('.child').offset())
        // 获取相对于带有定位的父级元素偏移坐标,如果父级没有定位,则以文档为准
        console.log($('.child').position())
        // 获取元素被卷去的头部距离
        $(window).on('scroll', function () {
   
            console.log($(window).scrollTop())
        })
    </script>
</body>

没有动人的情话,只有简单的喜欢,一生热情,次次真心。

全部评论

相关推荐

10-19 10:28
已编辑
西南石油大学 后端工程师
团孝子已上线feeling:面了很多家公司,能感受到目前只有小公司+外包喜欢问八股。大厂虽然也问八股,但是是从实习、项目中进行提问,并且大厂会问很深,面试官也会对你的回答进行思考➕追问,所以准备大厂面试前一定要备好相关资料。对于算法,我做的是codetop前100+力扣hot100+力扣高频150,面试中实感hot100就足够,基本上只要是hot100就秒答。对于项目和八股,我做的也是烂大街的星球项目,八股则是看小林和问ai,自己也写了很多技术博客和画了很多思维导图,并且自己也尝试用嘴巴说出来,不只停留于纸面。运气也很重要,必须要让面试官/HR看到简历才行,所以建议投递时间是下午两点。tl:第一岗位9.9&nbsp;投递9.10&nbsp;一面(一面评价:最近见过最强的大三,结束五分钟后约二面,都晚上九点了不下班吗)9.11&nbsp;二面(三道算法a出两道,反问评价:经验不够等横向,我实习生要啥经验)9.21挂(实习时间过短+其他原因,想要一年实习的,为什么不招个正职)第二岗位10.10投递10.11约面(主管打电话,说看到我之前投递记录了想要我挂qa职进去干后端,同意)10.14&nbsp;一面(无八股,主动说确实很强,意愿很强)10.16&nbsp;oc其余,友邦,东软,东华,惠择,用友oc已拒京东测开一面挂(投后端被测开捞)腾讯测试已拒(投后端被测开捞)ps:表扬惠择的主管面,没怎么问技术(可能是一面面试官沟通过了),全程一起讲大道理,解答了心中很多疑惑,也告诉我以面试官角度来看怎么选候选人,如果可以下次一定选惠择
HeaoDng:美团好像可以触发一面通
点赞 评论 收藏
分享
gelmanspar...:奖学金删掉,自我评价删掉,简历压缩一下,写一页
如果再来一次,你还会学机...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务