js-API 获取元素的相关方式innerText和innerHTMl区别

对象可以直接. 其属性 拿到的数据是json队形那么就可以直接点属性 调用

成对标签 修改里面的内容 使用 innertext 不是成对比如input 私用value

按钮的排他功能

  1. 获取所有按钮

  2. 注册每个按钮点击事件

  3. 循环让没被点击的按钮的值为没被点击

  4. 被点击的按钮显示的value值为被点击了 this.value

    注意为事件注册点击事件,在浏览器加载完就已经注册完毕了,

点击按钮选中性别和兴趣 document.getElenmentById(‘btn’).onclick=function() {

document.getElementById(‘rad’).checked = true;

输入款过的一些属性设置 true or false

selected也是 true或者false进行操作是否有选中

//注意这里使用true或者false

}

disabled 这个属性是禁用的

readonly这个文本框是只读

在js中操作dom是 不用calss关键字 应该使用className

网页的开关等效果 就是找到body元素 先判断它的类名 在选择添加其样式

阻止超链接默认跳转事件 直接a标签里加入 return false

获取时使用函数也可以 就是结果是return false

getElementsByTagName(‘a’); getElements记得加上s

<ul id="imagegallery">
        <li>
            <a href="images/1.jpg" title="美女A">
                <img src="images/1-small.jpg" width="100" alt="美女1" />
            </a>
</li>

获取li里面的a 直接一步到位不需要太复杂的嵌套

var aObj = my$('imagegallery').getElementsByTagName('a');

列表的高亮显示

为li注册鼠标的进入和离开事件

二维码得显示隐藏

<!DOCTYPE html>
<html>

<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
    .nodeSmall {
        width: 50px;
        height: 50px;
        background: url(images/bgs.png) no-repeat -159px -51px;
        position: fixed;
        right: 10px;
        top: 40%;
    }
    
    .erweima {
        position: absolute;
        top: 0;
        left: -150px;
    }
    
    .nodeSmall a {
        display: block;
        width: 50px;
        height: 50px;
    }
    
    .hide {
        display: none;
    }
    
    .show {
        display: block;
    }
    </style>
</head>

<body>
    <div class="nodeSmall" id="node_small">
        <a href="#"></a>
        <!--锚定-->
        <div class="erweima hide" id="er">
            <img src="images/456.png" alt="" />
        </div>
    </div>
    <script src="common.js"></script>
    <script>
    my$('node_small').onmouseover = function() {
        my$('er').className = "erweima show";
    };
    my$('node_small').onmouseout = function() {
        my$('er').className = "erweima hide";
    };
    </script>
</body>

</html>

通过name属性可以获取表单的元素

document.getElementsByName(‘name1’);

根据类样式的名字获取元素

document.getElementsByClassName();

其他获取元素方式 h5c3的方式

document.querySelector("#btn")

document.querySelectorAll(".cls")选择所有的,返回的是多个

这几种有的浏览器不支持

div的高亮

注意设置高亮出现 鼠标经过的时候抖动 这时需要给每个div提前加上一个

border 高亮的其实就是加上border

搜索框 的失去焦点和获取焦点

onblur 和 onfocus 小写的

<input type="text" value="请输入搜索内容" id="txt" />
    <script src="common.js"></script>
    <script>
    var obj = my$("txt");
    obj.onfocus = function() {
        if (this.value == "请输入搜索内容") {
            this.value = "";
            this.style.color = "black";
        }
    };
    obj.onblur = function() {
        if (this.value == "") {
            this.value = "请输入搜索内容";
            this.style.color = "gray";
        }
    };
    </script>

验证文本框密码的长度

直接获取value 通过value.length进行匹配

####封装innerText和textContent

有的浏览器支持有的不支持

//设置标签中的文本内容,应该使用textContent属性,谷歌,火狐支持,IE8不支持
//设置标签中的文本内容,应该使用innerText属性,谷歌,火狐,IE8都支持

一个是设置标签的文本内容

一个是获取标签里面的文本内容

封装兼容代码 使用

if (typeof element.innerText == "undefined)来进行 判断

function settext(element, text) {
        if (typeof element.innerText == "undefined") {
            element.textContent = text;
        } else {
            element.innerText = text;
        }
    }
    my$('btn').onclick = function() {
        var dvObj = my$("dv");
        settext(dvObj, "牛逼了");
    }

innerHTML和innerText的区别

  • 总结:如果使用innerText主要是设置文本的,设置标签内容,是没有标签的效果的
  • 总结:innerHTML是可以设置文本内容
  • 总结:innerHTML主要的作用是在标签中设置新的html标签内容,是有标签效果的
  • 总结:想要设置标签内容,使用innerHTML,想要设置文本内容,innerText或者textContent,或者innerHTML,推荐用innerHTML

​ 使用innerHTML没有兼容问题使用innertext有兼容的问题

获取的时候:
  • innerText可以获取标签中间的文本内容,但是标签中如果还有标签,那么最里面的标签的文本内容也能获取.—获取不到标签的,文本可以获取
  • innerHTML才是真正的获取标签中间的所有内容

自定义属性操作

在html自定义的属性 通过 alert(this.getAttribute(‘score’));

getAttribute进行获取

不能直接点属性进行操作

添加自定义属性

第一个参数 name 第二个参数属性值

list[i].setAttribute(“score, (i+1)*10”);

移除自定义属性

my$(“dv”).removeAttribute(“class”);

可以移除自定义和元素自带的属性

tab切换实现

removeAttribute用来移除类样式

<!DOCTYPE html>
<html>

<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
    * {
        margin: 0;
        padding: 0;
    }
    
    ul {
        list-style-type: none;
    }
    
    .box {
        width: 400px;
        height: 300px;
        border: 1px solid #ccc;
        margin: 100px auto;
        overflow: hidden;
    }
    
    .hd {
        height: 45px;
    }
    
    .hd span {
        display: inline-block;
        width: 90px;
        background-color: pink;
        line-height: 45px;
        text-align: center;
        cursor: pointer;
    }
    
    .hd span.current {
        background-color: purple;
    }
    
    .bd li {
        height: 255px;
        background-color: purple;
        display: none;
    }
    
    .bd li.current {
        display: block;
    }
    </style>
</head>

<body>
    <div class="box" id="box">
        <div class="hd">
            <span class="current">体育</span>
            <span>娱乐</span>
            <span>新闻</span>
            <span>综合</span>
        </div>
        <div class="bd">
            <ul>
                <li class="current">我是体育模块</li>
                <li>我是娱乐模块</li>
                <li>我是新闻模块</li>
                <li>我是综合模块</li>
            </ul>
        </div>
    </div>
    <script src="common.js"></script>
    <script>
    var box = my$("box");
    var hd = box.getElementsByTagName("div")[0];
    var bd = box.getElementsByTagName("div")[1];
    var list = bd.getElementsByTagName("li");
    var spans = hd.getElementsByTagName("span");
    for (var i = 0; i < spans.length; i++) {
        //点击保存索引 使用自定义属性
        spans[i].setAttribute("index", i);
        spans[i].onclick = function() {
            //第一件事 所有的span的类样式全部移除
            for (var j = 0; j < spans.length; j++) {
                spans[j].removeAttribute("class");
            }
            //第二件事 当被点击的span应用样式
            this.className = "current";

            //获取存储的索引
            var index = this.getAttribute("index");
            //获取所有的li标签  在代码上面已经获取了
            for (var k = 0; k < list.length; k++) {
                list[k].removeAttribute("class");
            }
            list[index].className = "current";

        }
    }
    </script>
</body>

</html>

按钮的排他功能

猜你喜欢

转载自blog.csdn.net/qq_38964133/article/details/88361088