亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

JS傳參技巧總結

1.隐式创建 html 标签

<input type="hidden" name="tc_id" value="{{tc_id}}">
这种方法一般配合ajax,上面的value使用了模板引擎

2.window['data']

window['name'] = "the window object";

3.使用localStorage,cookie等存储

window.localStorage.setItem("name", "xiaoyueyue"); window.localStorage.getItem("name")
特点
1、localStorage 是持久存储,不主动删除 一直存在            sessionStorage 是临时存储,关闭浏览器数据就没了 2、localStorage 可以多窗口共享        sessionStorage 不能多窗口共享数据

4.获取地址栏方法

  1. 自己封装的方法

function parseParam(url) {   var paramArr = decodeURI(url).split("?")[1].split("&"),     obj = {};   for (var i = 0; i < paramArr.length; i++) {     var item = paramArr[i];     if (item.indexOf("=") != -1) {       var tmp = item.split("=");       obj[tmp[0]] = tmp[1];     } else {       obj[item] = true;     }   }   return obj; }

2.正则表达式方法

function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; }

5.标签绑定函数传参

<!--base-->  <button id="test1" ="alert(id)">test1</button>   <!--高级--> <button id="test" name="123" yue="xiaoyueyue" friend="heizi" ="console.log(this.getAttribute('yue'),this.getAttribute('friend'))">test</button>

this拓展

使用this传参,在使用art-template中琢磨出来的,再也不用只传递一个id拼接成好几个参数了!happy!

var box = document.createElement("div"); box.innerHTML = "<button id='1' data-name='xiaoyueyue' data-age='25' data-friend='heizi' ='alertInfo(this)'>点击</button>"; document.body.appendChild(box); // name,age,friend function alertInfo(val) {   console.log(val);   alert('大家好,我是' + val.dataset.name + ', 我今年' + val.dataset.age + '岁了,我的好朋友是' + val.dataset.friend + ' !') }

event

既然可以使用this,那么在事件当中event.target方法也是可以的:

根据 class 获取当前的索引值,参数可以为 event对象
  var getIndexByClass =  function (param) {     var element = param.classname ? param : param.target;     var className = element.classname;     var domArr = Array.prototype.slice.call(document.querySelectorAll('.' + className));     for (var index = 0; index < domArr.length; index++) {       if (domArr[index] === element) {         return index;       }     }     return -1;   },

6.HTML5 data-* 自定义属性

<button data-name="xiaoyueyue">点击</button>
 var btn = document.querySelector("button")     btn. = function () {       alert(this.dataset.name)     }

7.字符串传参

单个参数

var name = 'xiaoyueyue',   age = 25; var box = document.createElement("div"); box.innerHTML = '<button ="alertInfo(\'' + name + '\')">点击</button>'; document.body.appendChild(box); // name, age function alertInfo(name, age, home, friend) {   alert("我是" + name) }

多参传递

 var name = 'xiaoyueyue',   age = '25',   home = 'shanxi',   friend = 'heizi'; var params = "&quot;" + name + "&quot;,&quot;" + age + "&quot;,&quot;" + home + "&quot;,&quot;" + friend + "&quot;"; var box = document.createElement("div"); box.innerHTML = "<button ='alertInfo(" + params + ")'>点击</button>"; document.body.appendChild(box); // name, age,home,friend function alertInfo(name, age, home, friend) {   alert("我是" + name + ',' + "我今年" + age + "岁了!") }

复杂传参

var data = [   {     "name": "xiaoyueyue",     "age": "25",     "home": "shanxi",     "friend": "heizi"   } ] var box = document.createElement("div"); for (var i = 0; i < data.length; i++) {   box.innerHTML = "<button id='btn'  ='alertInfo(id,\"" + data[i].name + "\",\"" + data[i].age + "\",\"" + data[i].home + "\",\"" + data[i].friend + "\")'>点击</button>"; } document.body.appendChild(box); function alertInfo(id, name, age, home, friend) {   alert("我是" + name + "," + friend + "是我的好朋友") }

8.arguments

arguments对象是所有(非箭头)函数中都可用的局部变量。你可以使用arguments对象在函数中引用函数的参数。它是一个类数组的对象。

<button ="fenpei('f233c7a290ae11e8a0f00050568b2fdd','100','0号 车用柴油(Ⅴ)')">分配</button>
function fenpei() {     var args = Array.prototype.slice.call(arguments);     alert("我是" + args[2] + "油品,数量为 " + args[1] + " 吨, id为 " + args[0]) }

原文链接:https://segmentfault.com/a/1190000016005163

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消