JavaScript属性操作

简介: JavaScript属性操作

非表单元素的属性


href、title、id、src、className


var link = document.getElementById('link');
console.log(link.href);
console.log(link.title);
var pic = document.getElementById('pic');
console.log(pic.src);


案例:


点击按钮,切换img标签里的图片


点击按钮显示隐藏div


https://blog.csdn.net/weixin_45525272/article/details/107671639


  • innerHTML和innerText


var box = document.getElementById('box');
box.innerHTML = '我是文本<p>我会生成为标签</p>';
console.log(box.innerHTML);
box.innerText = '我是文本<p>我不会生成为标签</p>';
console.log(box.innerText);


  • HTML转义符


"   &quot;
‘   &apos;
&   &amp;
<   &lt;    //less than  小于
>   &gt;   // greater than  大于
空格     &nbsp;
©   &copy;


  • innerHTML和innerText的区别


  • innerText的兼容性处理


表单元素属性


  • value 用于大部分表单元素的内容获取(option除外)


  • type 可以获取input标签的类型(输入框或复选框等)


  • disabled 禁用属性


  • checked 复选框选中属性


  • selected 下拉菜单选中属性


案例


  • 搜索文本框


https://blog.csdn.net/weixin_45525272/article/details/107671639


自定义属性操作


  • getAttribute() 获取标签行内属性


  • setAttribute() 设置标签行内属性


  • removeAttribute() 移除标签行内属性


与element.属性的区别:上述三个方法用于获取任意的行内属性。


样式操作


  • 使用style方式设置的样式显示在标签行内


var box = document.getElementById('box');
box.style.width = '100px';
box.style.height = '100px';
box.style.backgroundColor = 'red';


  • 注意


通过样式属性设置宽高、位置的属性类型是字符串,需要加上px


类名操作


  • 修改标签的className属性相当于直接修改标签的类名


var box = document.getElementById('box');
box.className = 'clearfix';


案例


  • 图片切换二维码案例


https://blog.csdn.net/weixin_45525272/article/details/107671639


  • tab选项卡切换


<!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>
  //获取最外面的div
  var box=my$("box");
  //获取的是里面的第一个div
  var hd=box.getElementsByTagName("div")[0];
  //获取的是里面的第二个div
  var bd=box.getElementsByTagName("div")[1];
  //获取所有的li标签
  var list=bd.getElementsByTagName("li");//=================================
  //获取所有的span标签
  var spans=hd.getElementsByTagName("span");
  //循环遍历的方式,添加点击事件
  for(var i=0;i<spans.length;i++){
    //在点击之前就把索引保存在span标签中
    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";
      //span被点击的时候获取存储的索引值
      //alert(this.getAttribute("index"));
      var num=this.getAttribute("index");//==============================
      //获取所有的li标签,每个li标签先全部隐藏
      for(var k=0;k<list.length;k++)
      {
        list[k].removeAttribute("class");
      }
      //当前被点击的span对应的li标签显示
      list[num].className="current";
    };
  }
</script>
</body>
</html>


相关文章
|
2月前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
2月前
|
监控 JavaScript 前端开发
确定使用 `defer` 属性还是 `async` 属性来异步加载 JavaScript
【10月更文挑战第24天】选择使用 `defer` 属性还是 `async` 属性来异步加载 JavaScript 是一个需要综合考虑多个因素的决策。需要根据脚本之间的依赖关系、页面加载性能要求、脚本的功能和重要性等因素来进行权衡。在实际应用中,需要通过测试和验证来确定最适合的加载方式,以提供更好的用户体验和页面性能。
|
5月前
|
存储 JavaScript 前端开发
js中map属性
js中map属性
59 1
|
2月前
|
监控 JavaScript 前端开发
使用 `defer` 属性异步加载 JavaScript
【10月更文挑战第24天】使用 `defer` 属性异步加载 JavaScript 是一种有效的提高页面性能和用户体验的方法。通过合理设置 `defer` 属性,可以在不影响页面渲染的情况下异步加载脚本,并确保脚本的执行顺序。在实际应用中,需要根据具体情况选择合适的加载方式,并注意处理可能出现的问题,以确保页面能够正常加载和执行。
|
3月前
|
移动开发 JavaScript 前端开发
原生js如何获取dom元素的自定义属性
原生js如何获取dom元素的自定义属性
99 4
|
3月前
|
缓存 JavaScript 前端开发
探索Vue.js中的计算属性与侦听器
【10月更文挑战第5天】探索Vue.js中的计算属性与侦听器
35 1
|
4月前
|
JavaScript 前端开发
JavaScript基础知识-枚举对象中的属性
关于JavaScript基础知识中如何枚举对象属性的介绍。
38 1
JavaScript基础知识-枚举对象中的属性
|
3月前
|
存储 JavaScript 前端开发
js中map属性
js中map属性
29 0
|
3月前
|
缓存 JavaScript 前端开发
深入理解Vue.js中的计算属性与侦听属性
【10月更文挑战第5天】深入理解Vue.js中的计算属性与侦听属性
46 0
|
3月前
|
缓存 JavaScript 前端开发
探索Vue.js中的计算属性与侦听器:深入理解与实践
【10月更文挑战第5天】探索Vue.js中的计算属性与侦听器:深入理解与实践
35 0