需要解析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函数中
从document.location对象创建jQuery对象毫无意义,因为它不是DOM元素.
只需search从对象获取属性,并在循环数组时使用$.each方法intead .each,而不是元素:
$.each(document.location.search.split('&'), function(){
...
});
Run Code Online (Sandbox Code Playgroud)
试试这个:
$.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()上面的方法.