Javascript Split Function和Jquery不能一起工作

S. *_*lik 5 javascript jquery

需要解析URL的Get变量.我创建了一个document.location的jQuery对象,然后使用attr函数获取search属性来获取所有变量.但是当我在它上面使用split函数并且之后使用each()时,它会给出错误,指出对象没有每个方法.

TypeError: Object [object Array] has no method 'each'  
Run Code Online (Sandbox Code Playgroud)

代码是:

 $(document.location).attr('search').split('&').each()
Run Code Online (Sandbox Code Playgroud)

我也尝试在第一个函数中使用search属性,但它不允许它,即$(document.location.search)给出错误.

我还检查了split函数返回的数据类型,控制台说它是一个对象,我也很困惑它应该是一个数组.

PS:以上所有代码都在jQuery的document.ready函数中

Guf*_*ffa 7

document.location对象创建jQuery对象毫无意义,因为它不是DOM元素.

只需search从对象获取属性,并在循环数组时使用$.each方法intead .each,而不是元素:

$.each(document.location.search.split('&'), function(){
  ...
});
Run Code Online (Sandbox Code Playgroud)


pal*_*aѕн 5

试试这个:

$.each($(document.location).attr('search').split('&'), function (index, value) {
    alert(index + ': ' + value);
});
Run Code Online (Sandbox Code Playgroud)

jQuery .each()方法用于迭代jQuery对象,为每个匹配的元素执行一个函数.

但你得到的$(document.location).attr('search').split('&')是一个JavaScript数组,它显然没有'each'方法:这就是你得到错误的原因.

要在jQuery中循环遍历数组,您需要使用$.each()上面的方法.