【JAVA WEB】获取/修改 元素属性&&表单元素属性&&样式属性 以及如何操作DOM树中的节点

这篇具有很好参考价值的文章主要介绍了【JAVA WEB】获取/修改 元素属性&&表单元素属性&&样式属性 以及如何操作DOM树中的节点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

获取/修改元素属性

获取/修改表单元素属性

切换按钮的文本

实现计数器

全选/取消全选按钮

获取/修改样式属性

行内样式操作 

类名样式操作

操作节点 

新增节点

1.创建元素节点

2.插入节点到dom树中

删除节点 


获取/修改元素属性

可以通过Element对象的属性来直接修改,就能影响到页面显示效果

如下示例

<body>

    <img src="male.png" title="这是一个提示图片" width="100px" height="=100px">

</body>

<script>

   let img = document.querySelector('img')

   img.title = "这是已经修改的title"

</script>

修改前: 

 【JAVA WEB】获取/修改 元素属性&&表单元素属性&&样式属性 以及如何操作DOM树中的节点,Java Web,前端,java,python

修改后:

【JAVA WEB】获取/修改 元素属性&&表单元素属性&&样式属性 以及如何操作DOM树中的节点,Java Web,前端,java,python

获取/修改表单元素属性

表单(主要指input标签)的以下属性可以通过DOM修改

  • value:input的值
  • disabled:禁用
  • checked:复选框会使用
  • selected:下拉框会使用
  • type:input的类型(文本,密码,按钮,文件等)

代码示例:

切换按钮的文本

假设这是个播放按钮,在“播放” - “暂停” 之间切换

<body>

    <input class="btn" type="button" value="播放">

</body>

<script>

   let btn = document.querySelector('.btn')

   btn.onclick = function(){

        if(btn.value == "播放")

        {

            btn.value = "暂停"

        }

        else

        {

            btn.value = "播放"

        }

   }

</script>

 

实现计数器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input class="input" type="text" name="" id="" value="0">
    <input calss="add" type="button" value="+1" onclick="Add()">
    <input class="min" type="button" value="-1" onclick="Min()">
</body>
<script>
    function Add(){
        let input_element = document.querySelector('.input')
        input_element.value = parseInt(input_element.value) + 1
    }
    function Min(){
        let input_element = document.querySelector('.input')
        input_element.value = parseInt(input_element.value) - 1
    }
</script>
</html>

全选/取消全选按钮

  1. 点击全选按钮,则选中所有选项
  2. 只要某个选项取消,则自动取消全选按钮的勾选状态
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input class="all" type="checkbox" name="" id="" onclick="SelectAll()">选中全部<br>
    <input type="checkbox" class="select">选项1<br>
    <input type="checkbox" class="select">选项2<br>
    <input type="checkbox" class="select">选项3<br>
</body>
<script>
    let all = document.querySelector('.all')
    let select = document.querySelectorAll('.select')
    // 点击全选按钮,则选中所有选项
    function SelectAll()
    {
        for(i = 0; i < select.length; i++)
        {
            select[i].checked = all.checked
        }
    }
    // 只要某个选项取消,则自动取消全选按钮的勾选状态
    for(i = 0; i < select.length; i++)
    {
        select[i].onclick = function() {
            all.checked = IsSelectAll(select)
        }
    }
    function IsSelectAll(select){
        for(i = 0; i<select.length; i++)
        {
            if(select[i].checked == false)
            {
                return false;
            }
        }
        return true;
    }
</script>
</html>

 效果如下【JAVA WEB】获取/修改 元素属性&&表单元素属性&&样式属性 以及如何操作DOM树中的节点,Java Web,前端,java,python

 【JAVA WEB】获取/修改 元素属性&&表单元素属性&&样式属性 以及如何操作DOM树中的节点,Java Web,前端,java,python

获取/修改样式属性

CSS中指定给元素的属性,可以通过JS来修改

行内样式操作 

element.style.[属性名] = [属性值]

element.style.cssText = [属性名+属性值]

行内样式,通过style直接在标签上指定的样式,优先级很高,适用于改的样式少的情况 

示例:
实现点击文字放大字体

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div style="font-size:10px;" onclick="ChangeSize()">哈哈哈</div>
</body>
<script>
    function ChangeSize(){
        let element = document.querySelector('div')
        let size = parseInt(element.style.fontSize) + 10;
        element.style.fontSize = size + 'px'  //第一种写法
        //element.style.cssText = "font-size:" + size +"px" 第二种写法
    }
</script>
</html>

 PS:上述方法只能影响到特定样式,其他内联样式的值不变

类名样式操作

element.className = [CSS 类名]

修改元素的CSS类名,适用于要修改的样式有很多

代码示例:开启夜间模式 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .light{
            background-color: aliceblue;
            color: black;
            width: 100%;
            height: 100%;
        }
        body,html{
            width: 100%;
            height: 100%;
        }
        .dark {
            background-color: black;
            color: white;
            width: 100%;
            height: 100%;
        }
    </style>
</head>
<body>
    <div class="light" onclick="changeStyle()">
        这是一段话<br>
        这是一段话<br>
        这是一段话<br>
        这是一段话<br>
        这是一段话<br>
        这是一段话<br>
        这是一段话<br>
    </div>
</body>
<script>
    function changeStyle(){
        let element = document.querySelector('div')
        //如果当前的样式是白天模式,将其切换到黑夜模式
        //否则就将当前样式切换到白天模式
        if(element.className == "light")
        {
            element.className = "dark"
        }
        else
        {
            element.className = "light"
        }
    }
</script>
</html>

 效果如下:

白天模式

【JAVA WEB】获取/修改 元素属性&&表单元素属性&&样式属性 以及如何操作DOM树中的节点,Java Web,前端,java,python

夜晚模式

 【JAVA WEB】获取/修改 元素属性&&表单元素属性&&样式属性 以及如何操作DOM树中的节点,Java Web,前端,java,python

操作节点 

新增节点

分成两个步骤

  1. 创建元素节点
  2. 把元素节点插入到dom树中

第一步相当于生了个娃,第二步相当于给娃上户口

1.创建元素节点

let element = document.createElement(tagName[, options]) //tagName 标签

2.插入节点到dom树中

有两种方法:

1>使用appendChild将节点插入到指定节点的最后一个孩子之后

element.appendChild(achild)

<body>

    <div>

        <p>这是标签1</p>

        <p>这是标签2</p>

        <p>这是标签3</p>

       

    </div>

</body>

<script>

    //创建

    let element = document.createElement('h3')

    element.innerHTML = "这是我们创建的一个新的节点"

    //插入

    let div = document.querySelector('div')

    div.appendChild(element)

</script>

 效果如下

【JAVA WEB】获取/修改 元素属性&&表单元素属性&&样式属性 以及如何操作DOM树中的节点,Java Web,前端,java,python

2>使用insertBefore将节点插入到指定节点之前

let insertNode = parentNode.insertBefore(newNode, referenceNode)

  • insertNode 被插入节点(newNode)
  • parentNode 新插入节点的父节点
  • newNode 用于插入的节点
  • referenceNode newNode将要插在这个节点之前

如果referenceNode为null 则newNode将插入到子节点的末尾

示例:

<body>

    <div>

        <p class="p1">这是标签1</p>

        <p>这是标签2</p>

        <p>这是标签3</p>

       

    </div>

</body>

<script>

    //创建

    let newNode = document.createElement('p')

    newNode.innerHTML = "这是一个新p标签"

    //插入

    let div = document.querySelector('div')

    div.insertBefore(newNode,document.querySelector('.p1'))

</script>

效果如下

【JAVA WEB】获取/修改 元素属性&&表单元素属性&&样式属性 以及如何操作DOM树中的节点,Java Web,前端,java,python 

PS:

注意1:如果针对一个节点插入两次,则只有最后依次生效了(相当于把元素移动了)

注意2: 一旦一个节点插入完毕,再针对刚刚的节点对象进行修改,能够同步影响到DOM树中的内容

删除节点 

使用removeChild删除子节点

oldchild = element.removeChild(child);

  • child为待删除节点
  • element为child的父节点
  • 返回值为该被删除节点
  • 被删除的节点只是从dom树中被删除了,但是仍然存在内存中,可以随时加入到dom树的其他位置
  • 如果上例中的child节点不是element节点的子节点,则该方法会抛出异常
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div class="container">
        <div>1</div>
        <div>2</div>
        <div>3</div>
        <div id="delete">4</div>
    </div>
</body>
</html>
<script>
    let parent = document.querySelector(".container")
    let child = document.querySelector("#delete")
    //要通过父元素才能删除子元素
    parent.removeChild(child)
</script>

效果如下 

【JAVA WEB】获取/修改 元素属性&&表单元素属性&&样式属性 以及如何操作DOM树中的节点,Java Web,前端,java,python文章来源地址https://www.toymoban.com/news/detail-835903.html

到了这里,关于【JAVA WEB】获取/修改 元素属性&&表单元素属性&&样式属性 以及如何操作DOM树中的节点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java selenium 通过直接设置表单元素的 value 属性来填写 Vue / React 表单

    以下是一个通过直接设置表单元素的 value 属性来填写 Vue 表单并提交的示例代码。 这段代码会通过直接设置表单元素的 value 属性来填写 name 和 email 字段,然后点击提交按钮。需要注意的是,在设置 value 属性后还需要手动触发相应的事件(如 input 事件),以确保表单数据被

    2024年01月20日
    浏览(44)
  • 微信小程序修改radio的样式,以及获取radio选择的值(自定义radio样式)

     博主介绍: 本人专注于Android/java/数据库/微信小程序技术领域的开发,以及有好几年的计算机毕业设计方面的实战开发经验和技术积累;尤其是在安卓(Android)的app的开发和微信小程序的开发,很是熟悉和了解;本人也是多年的Android开发人员;希望我发布的此篇文件可以帮

    2024年01月15日
    浏览(52)
  • 用selenium和xpath定位元素并获取属性值以及str字符型转json型

    页面html如图所示: 要使用xpath定位这个div元素,并且获取其属性data-config的内容值。  结果如图:  蓝色的为str类型,红色的为json类型。 那么先得到的是str类型,如何转换为json类型呢?使用如下代码即可。 import json json_attr=json.loads(str_attr) 读取json数据用json_attr[\\\'video\\\'][\\\'url\\\'

    2024年02月08日
    浏览(39)
  • js改变元素的内容、属性、样式

    在JavaScript中,你可以通过以下方式改变HTML元素的内容、属性和样式: 改变元素的内容 : 使用  .textContent  或  .innerHTML  可以改变元素的内容。 例如: 改变元素的属性 : 使用  .setAttribute()  方法可以改变元素的属性。 例如: 改变元素的样式 : 使用  .style  属性可以直

    2024年01月21日
    浏览(54)
  • 【CSS 17】attribute selector 属性选择器 设置无class或id的表单样式

    attribute selector 属性选择器 可以设置带有特定属性或属性值的 HTML 元素的样式 [attribute] 选择器用于选取带有指定属性的元素 [attribute=“value”] 选择器用于选取带有指定属性和值的元素 [attribute~=“value”] 选择器选取属性值包含指定词的元素 [attribute|=“value”] 选择器用于选取

    2024年02月12日
    浏览(52)
  • input时间表单默认样式修改(input[type=“date“])

    HTML代码: 选择日期: 选择时间: 在这里插入图片描述 选择星期: 选择月份: DateTime-Local类型: 目前WebKit下有如下9个伪元素可以改变日期控件的UI: 实例 1.问题--------date类型改变行高和高度那个小三角并不会根据大小调整,实在太丑了,所以决定把它隐藏掉。 /* 去掉dat

    2024年02月11日
    浏览(54)
  • 【Vue】动态设置元素类以及样式

    1.动态设置类 class 1.1 字符串语法 通过 v-bind 绑定元素的 class 属性,为其指定一个字符串: 此时我们可以通过改变 className 变量来切换样式。注意,当 className 为 \\\'\\\' 时,这个class属性仍然会被添加到真实DOM上,只不过没有值。 1.2 对象语法 通过 v-bind 绑定元素的 class 属性,为其

    2024年02月11日
    浏览(32)
  • uni-app:js修改元素样式(宽度、外边距)

    效果 代码 1、在 view 元素上添加一个 ref 属性 ,用于在JavaScript代码中获取对该元素的引用:view ref=\\\" myView \\\" id=\\\"mybox\\\"/view 2、获取元素引用 :const viewElement = this.$refs. myView .$el; 3、修改元素宽度:viewElement.style.width = \\\'100px\\\'; 4、修改元素左外边距:viewElement.style.marginLeft = \\\'20px\\\'; 这种

    2024年02月07日
    浏览(47)
  • 前端:常用的获取元素位置与元素尺寸的属性与方法

    属性/方法 描述 clientWidth 返回元素内容区的宽度(不包括滚动条、边框和外边距)。对于 box-sizing: border-box 的元素,包含内边距。 clientHeight 返回元素内容区的高度(不包括滚动条、边框和外边距)。对于 box-sizing: border-box 的元素,包含内边距。 offsetWidth 返回元素的总宽度,

    2024年04月13日
    浏览(73)
  • 〖大前端 - 基础入门三大核心之JS篇㊲〗- DOM改变元素节点的css样式、HTML属性

    说明:该文属于 大前端全栈架构白宝书专栏, 目前阶段免费 , 如需要项目实战或者是体系化资源,文末名片加V! 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 从事过全栈研发、产品经理等工作,目前在公司担任研发部门CTO。 荣誉: 2022年度博客之星Top4、2023年度超

    2024年02月04日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包