window[$this.attr('onajax')]什么意思,看不懂

ihfqd 2018-02-07 03:59:13
window[$this.attr('onajax')]看到这么一句话,总感觉是错的,经过测试压根就获取不到值,但改成window.$this.attr('onajax')就可以。其中$this=$(this),onajax是一个标签属性的值。
...全文
1279 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
无聊的上午 2018-02-08
  • 打赏
  • 举报
回复
引用 2 楼 winzond 的回复:
jQuery返回属性值的语法:$(selector).attr(attribute),好像语法不太对吧,w3school的JS window方面的教程也没有提及“[]”的写法,都是一个“.”的写法。我也是初学者,我的理解是,还是按教程教的方法去写吧,或许能得到你需要的东西
这里可以把js的对象看做一个特殊的数组,或者你可以把js的数组看做一个特殊的对象都可以,只是便于理解,你尝试在控制台打印数组,比如举个例子: var arr = [1,2,3];控制台打印出来是 0:1 1:2 2:3 而对象假如是 var obj={'a':'1','b':2,'c':3} 打印出来是 a:1 b:2 c:3 你把a,b,c换成0,1,2 就明白了三,其实js的数组就是一个类似json对象的东西,只是他的key已经内定好了,你无法改变,并且也不需要并且也不能在定义时写出来
无聊的上午 2018-02-08
  • 打赏
  • 举报
回复
引用 3 楼 jslang 的回复:
要分开看。先看$this.attr('onajax')的返回值是什么,比如返回值是:"abc"。 window[$this.attr('onajax')] 等于 window["abc"] 等于 window.abc 等于 abc 也就是访问全局变量abc的值,(前提是页面上有全局变量abc)
引用这位师兄的解释下你第二次写的方式有可能就变成了 abc.attr('onajax'),简而言之就是第一种方式你先获取的$this对象中属性名叫onajax的值作为window对象的key,从而获取这个对应key的值; 而第二种方式则是在获取$this对象中属性名叫onajax的值,获取的东西不一样,所以你答案会不一样,现在关键是看两个地方,第一个$this.attr('onajax')看这个有没有值,第二个看window也就全局对象中有没有存$this.attr('onajax')和他相等的key名字,当然还有个隐藏的条件,a[b]的写法是错误的,这里的key必须有引号,没有引号他要报错,应该写成a['b']或者a["b"]或者a.b
winzond 2018-02-07
  • 打赏
  • 举报
回复
jQuery返回属性值的语法:$(selector).attr(attribute),好像语法不太对吧,w3school的JS window方面的教程也没有提及“[]”的写法,都是一个“.”的写法。我也是初学者,我的理解是,还是按教程教的方法去写吧,或许能得到你需要的东西
无聊的上午 2018-02-07
  • 打赏
  • 举报
回复
$this.attr('onajax') 你先看一下这玩意有东西没 , window[$this.attr('onajax')] 这种写法是js对象的一种用法,例如 a={b:'1'} ; 有两种取值方式 a['b'] 或者a.b;而你写的第二种格式有可以能会变成先获取window.$this 然后在获取(window.$this ).attr('onajax');如果你要的结果就是他的话,第一个也应该写成 window[$this] .attr('onajax');但是如果不是那么有可能是$this.attr('onajax')这个没取到你要的值,所以相当于是window[undefind] 所以取不到值;
  • 打赏
  • 举报
回复
这写法不熟悉
天际的海浪 2018-02-07
  • 打赏
  • 举报
回复
要分开看。先看$this.attr('onajax')的返回值是什么,比如返回值是:"abc"。 window[$this.attr('onajax')] 等于 window["abc"] 等于 window.abc 等于 abc 也就是访问全局变量abc的值,(前提是页面上有全局变量abc)
课程介绍:第一章:正则表达式(regularexpression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。第二章:http协议是一种无状态协议,不记录用户行为,我们可以利用cookie记录数据,方便用户操作,提升用户体验。第三章:ECMAScript6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。第四章:本章主要讲解JS动画原理、动画函数封装和轮播。第五章:本章主要讲解面向对象、构造函数和继承、原型链和继承。第六章:本节课程主要讲解了什么是Ajax、如何使用Ajax发送get请求、如何使用Ajax发送post请求、JSON数据格式、回调地狱、Promise和Ajax的同源策略、跨域请求。第七章:本章主要讲解html、val、attr、prop、class、全选框、动画、节点遍历、ajax、sonp、event、multiple、plugin、plugin、magnifier。第八章:本章主要讲解UML类图、单例模式、工厂模式、策略模式、代理模式、观察者模式。第九章:本章主要讲解为什么要模块化、原生JS中,模块的写法、AMD、CommonJS&Webpack。第十章:本节课程主要讲解了服务器安装环境配置、端口及ip基本常识、简单认识PHP(helloworld)、基本语法和动态网页原理。第十一章:本节课程主要讲解了什么是SASS、SASS的预处理、ass语法(变量、嵌套、导入、mixin、扩展、function、expression)。第十二章:本节课程主要讲解了什么是GULP、GULP环境配置、GULP基本使用及GULP的插件安装与使用。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧