获取单个元素-querySelector/多个元素-querySelectorAll/操作属性-`innerText`-`className`-`src`-`href` 与`classList`

01-获取元素-获取单个元素-querySelector

<body>
    <!-- 先写静态结构:前端开发的第一任务 -->
    <div class="head">
        头部内容
    </div>
    <div class="content" id="content">
        主体内容
    </div>
    <div class="footer">
        <span>尾部内容</span>
    </div>

    <script>
        // JS要获取元素:document.querySelector('选择器')

        // 认识document
        console.log(document)

        // 具体获取元素:选择器
        // 类选择器: .类名
        let head = document.querySelector('.head')
        console.log(head)

        // 标签选择器:querySelector()获取第一个
        let head1 = document.querySelector('div')
        console.log(head1)

        // 只要能够构成选择器的:都可以用来获取元素 
        let content = document.querySelector('#content')
        console.log(content)

        // 后台或者子代选择器
        let span = document.querySelector('.footer span')
        console.log(span)

        // 补充:所有的获取到的都是对象:是因为浏览器为了开发者使用方便,输出的时候都变成了字符串(元素标签)

        // 扩展:如果拿不到会得到null(对象:空对象)
        let a = document.querySelector('a')
        console.log(a)      // null 空对象
    </script>



02-获取元素-获取多个元素querySelectorAll(伪数组)

<body>
    <ul>
        <li>隔壁老王1</li>
        <li>隔壁老王2</li>
        <li>隔壁老王3</li>
    </ul>

    <script>
        // 获取所有的li:document.querySelectorAll('选择器'),一定是拿到一个伪数组

        let lis = document.querySelectorAll('ul li')
        console.log(lis)

        // 拿到的是个伪数组:不能直接用,要一个一个的取出里面的真实元素才能使用

        // 当前伪数组:可以受用for循环,也可以使用forEach
        lis.forEach(function (li) {
            console.log(li)
        })

        // querySelectorAll()特点:一定是伪数组,哪怕只有1个或者没有
        let ul = document.querySelectorAll('ul')
        console.log(ul)
        // 容易犯错的地方:获取一个,不小心用了querySelectorAll()

        let a = document.querySelectorAll('a')
        console.log(a)
    </script>
</body>

注意:

1.获取所有的li:document.querySelectorAll(‘选择器’),一定是拿到一个伪数组
2.一定是伪数组,哪怕只有1个或者没有


03-操作属性-基本属性(标准属性)innerText:双标签内部文本 className修改:元素.属性名 = 新值 src:修改图片**href:获取链接

<body>
    <div class="box item current">
        我是 前端新人
        <a href="http://www.itcast.cn"><img src="images/cloud.gif" alt=""></a>
        <span id="mark">我是带ID的男人</span>
    </div>

    <script>
        // 操作元素:第一步是获取元素
        let box = document.querySelector('.box')
        console.log(box)

        // 访问属性:类名className
        console.log(box.class)  // js中不识别
        console.log(box.className)  // 所有类名

        let a = document.querySelector('.box a')
        let img = document.querySelector('.box img')
        let span = document.querySelector('#mark')

        // href:a特有的
        console.log(a.href)
        // src:img(audio\vedio)
        console.log(img.src)

        // 不管是a.href还是img.src拿到都是完整路径

        // id
        console.log(span.id)
        // innerText:双标签内部文本
        console.log(span.innerText)

        // 修改:元素.属性名 = 新值
        box.className = 'now'
        console.log(box.className)

        // 所有属性都可以改
        span.innerText = '我是带Id的人'
        img.src = 'images/b1.jpg'

        // 新增属性:元素.属性名 = 新值
        span.className = 'add'

        // 删除:delete
        delete span.className   // 属性不能删除
        console.log(span.className)

        // 基本属性操作用的最多的
        // 1. 类名:需要修改(一般是修改)
        // 2. href属性(换链接)
        // 3. src属性(换图)

    </script>

在这里插入图片描述

注意:

1.className会彻底修改掉原来的属性,也会修改顺序,位置,间距。
2.此处一般建议使用classList,可以手动删除,增加。且不会影响元类名位置和间隔。


04-操作属性-基本属性classList classList.add('添加类') classList.remove('删除类')******此处注意和className的区别

<body>
    <div class="box  item  one">
        我是去前端新人
    </div>

    <script>
        // 需求:修改盒子box的颜色

        // 解决方案:干掉类名one,添加类名two

        // 1. 获取元素
        let box = document.querySelector('.box')
        // 2. 修改类名
        // box.className = 'box item two'
        // 操作特点:肉眼编程

        // 有一种更好的方式:只要操作想要操作的类即可(不影响别的类)
        // classList:获取元素的所有类
        console.log(box.classList)

        // 看到所有类:是一个对象,这个对象提供了两个方法操作类:
        // classList.add('添加类')
        // classList.remove('删除类')

        // 1. 先干掉one
        box.classList.remove('one')
        // 2. 后添加two
        box.classList.add('two')

    </script>
</body>

注意:
1.classList:获取元素的所有类
2.classList.add(‘添加类’)
3.classList.remove(‘删除类’)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`drag-handle` 和 `right-handle` 属性通常是自定义的 CSS 类,它们可能被用于实现拖拽功能。实现拖拽功能的关键在于监听鼠标事件,然后根据鼠标的位置和移动距离,将元素的位置进行相应的调整。 以下是一个简的实现拖拽功能的示例代码: ```html <div class="drag-handle right-handle"></div> <script> const handle = document.querySelector('.drag-handle.right-handle'); handle.addEventListener('mousedown', (event) => { event.preventDefault(); // 防止默认行为,比如选中文本 const startX = event.clientX; // 记录鼠标按下时的位置 const startY = event.clientY; const element = handle.parentElement; // 获取需要拖拽的元素 const handleMouseMove = (event) => { const deltaX = event.clientX - startX; // 计算鼠标移动的距离 const deltaY = event.clientY - startY; element.style.transform = `translate(${deltaX}px, ${deltaY}px)`; // 调整元素的位置 }; const handleMouseUp = () => { document.removeEventListener('mousemove', handleMouseMove); document.removeEventListener('mouseup', handleMouseUp); }; document.addEventListener('mousemove', handleMouseMove); document.addEventListener('mouseup', handleMouseUp); }); </script> ``` 该示例代码监听了 `mousedown` 事件,当鼠标按下时保存了鼠标的位置和需要拖拽的元素,然后添加了 `mousemove` 和 `mouseup` 事件的监听器,当鼠标移动时计算出鼠标移动的距离并改变元素的位置,当鼠标松开时移除监听器。 当然,这只是一个简的示例代码,实际的拖拽功能可能需要更多的处理,比如限制拖拽的范围、处理元素与其他元素的碰撞等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值