javascript规范

javascript规范

  • script标签最好放在之前

    • type = “text/javascript”,script默认是,不是必须要写
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <script  src=""></script>
    </body>
    </html>
    
  • 获取元素方法

    • document.getElementsByTagName
    • document.getElementById
    • document.getElementsByClassName
  • 操作属性

    • getAttribute
    • setAttribute
  • html标签和js连接的桥梁可以用this

    <a href="" onclick = "showPic(this);return false;">Click me</a>
    function show(node){
        var source  =node.getAttribute("href");
    }
    
  • js文件创建规范

    • 若一个站点用到多个js文件,为了减少对站点的请求次数(提高性能),应该把这些.js文件合并到一个文件中。
  • a标签

    • a标签绑定click事件后,需要消除跳转页面效果,点击超链接之后,不会被带到目标链接窗口。(禁用默认行为)

          <a href="../image/test2.jpg" onclick="showpic(this);return false;" >更换图片</a>
      <a href="../image/test2.jpg" onclick="showpic1(this)" target="_blank" >换回图片</a>
        //js
      function showpic1(whispic) {
              var imagelink ="../image/test.jpg";
              var placeholder = document.getElementById("placeholder");
              placeholder.setAttribute("src",imagelink);
          }
       function showpic(whispic) {
              var imagelink = whispic.getAttribute("href");
              var placeholder = document.getElementById("placeholder");
              placeholder.setAttribute("src",imagelink);
          }
      
    • 禁用默认行为的再举例(onclick是绑定事件到相关空间上的关键字)

      //给test3绑定点击事件
      var test3=document.getElementById("test3");
      test3.onclick = function () {
          alert("test3被点击")
          return false;
      }
      
    • 链接使用href(img、script、link等使用src)

  • 页面加载是调用函数

    window.onload=showpic2;//载入页面执行函数
    ///jquery
     $(document).ready(function() {
        })
    ///加载多个函数
    $(document).ready(function(){
    
        one();
    
    });
    $(document).ready(function(){
        two();
    });
    
  • 创建新页面窗口

        <button onclick="createNewWindows()">创建新窗口</button>
    //js
    function createNewWindows() {
        window.open("http://www.baidu.com","popup");
        return false;
    }
    
  • 检测浏览器是否支持javadom

    由于一些古老的浏览器会不支持javaDom,如果执行下去,会报错,那么可以设置一个校验机制机制

     if(!document.getElementsByTagName) return false;
    

    如果不识别javaDom语句,就会退出。

  • 提高性能要做的必要点

    • 尽量减少js文件,也就是能合并的尽量合并。

    • 压缩脚本,使用xxx.min.js版本,自己写的js脚本,可以使用工具来压缩。

    • 尽量减少访问javaDom

      //例如getElementByID使用较多的话,可以用变量一次获取,多次操作
      var links = document.getElementsByTagName("a");
      if(links.length>0){
      for(var i=0;i<links.length;i++){
      }
      }
      
  • 绑定事件到相关控件

    • 在html语句中

      <a href="../image/test2.jpg" onclick="showpic1(this)" target="_blank" >换回图片</a>
      
    • 在js文件中(被推荐的方式)

      var test3=document.getElementById("test3");
      test3.onclick = function () {
          alert("test3被点击")
          return false;
      }
      
    • 单选按钮的事件绑定

      var dates = document.getElementsByName("Storage");
      for(var j=0;j<dates.length;j++){
          dates[j].onclick=function () {
              console.log("被选中,值为"+this.getAttribute("value"));
              this.checked= checked;
              value = this.getAttribute("value");
              return false;
          }
      }
      //不过不放在函数体里面,会在加载js文件的时候,被加载,那么对应函数会在js在加载的时候被绑定到相关组件,后续再点击空间的时候,只运行相关和函数体,对于for语句来说,不会再执行。这也是为什么如果我在console里面添加i的话,总是打印3的原因。
      //错误
        dates[j].onclick=function () {
              console.log("被选中,值为"+ dates[j].getAttribute("value"));
               dates[j].checked= checked;
              value =  dates[j].getAttribute("value");
              return false;
          }
      //由于点击事件发生时,data[i]数据加载不到,因为i加载不到,用this来代表本元素
      //这种选中会报错,
      
<div class="RadioStyle" id="radiobutton">
   <div class="Block PaddingL" >
       <input type="radio" name="Storage" id="model1" value="year" checked="checked" />
       <label for="model1"></label>
       <input type="radio" name="Storage" id="model2" value="month" />
       <label for="model2"></label>
       <input type="radio" name="Storage" id="model3" value="day" />
       <label for="model3"></label>
   </div>
</div>
jquery///
   $(document).ready(function() {
       $('input[type=radio][name="Storage"]').change(function() {
           if (this.value == 'year') {
        
           } else if (this.value == 'month') {
              
           } else if (this.value == 'day') {
                     
                   }
       });
   });
              ```

* 多选按钮

 ```java
 <form class="layui-form">
         <div class="layui-form-item">
             <label class="layui-form-label">复选框</label>
             <div class="layui-input-block" id="checkbox">
            <input type='checkbox' name='permission' value='year'                          title='year'\>
             <input type='checkbox' name='permission' value='month'                          title='month'\>
              <input type='checkbox' name='permission' value='day'                          title='day'\>
             </div>
         </div>
      <button class="layui-btn" lay-submit="" lay-filter="btn_submit">立即提交</button>
 </form>
 ///jquery
 $("input[name='permission']:checked").each(function(i){//把所有被选中的复选框
                                 rolepermissions=rolepermissions+$(this).val()+","
                             });
  • jquery版本ajax

     $.ajax({
                        url : '',
                        type : 'get',
                        async : false,
                        dataType : "json",
                        contentType:"application/json"
                        success : function(json) {}
                        error: function(json) {}
                        })
    
    
  • jquery添加子节点

    $('#checkbox').append("<input type='checkbox' name='permission' value='" + item.id + "' title='"+item.menuName+"'\>");
    

    github

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值