产生问题的代码:
function sendNewList2Server(clientType, clientVer, ulDom){ var lis = $(ulDom).children(); var domains = ""; for(var i=0; i<lis.length; ++i){ if(i == 0) { domains = lis[i].attr("id"); } else { domains = domains + "_" + lis[i].attr("id"); } } }
这段代码的目的是遍历一个ul元素下的li元素,并将所有的li的id拼接起来。lis是一个JQuery对象,当我当时遍历ul的时候,想当然的用了下标操作符,而下标操作是js的语法。然后程序运行到去下标操作的时候,代码报错。
请教有经验的同事才知道,对JQuery对象使用下标操作符会得到相对应的Js对象。这才意识到JQuery对象和Js对象间的区别。于是搜了下JQuery对象和Js对象相互转化的方法。
JQuery对象转换成Js对象:li[0]或者lis.get(0);
Js对象转转JQuery对象:$(lis[0])
之所以JQuery对象转换成Js对象用的是取下标操作,是因为通过JQuery查询获得的是对象集,是一个集合。