我在snippr(http://snipplr.com/view.php?codeview&id=799)上发现了一个漂亮的小脚本,它给出了关联数组中的GET变量。
// Read a page's GET URL variables and return them as an associative array.
function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
var get = getUrlVars();
我正在尝试检查是否设置了某个GET变量,以及该值是否为“search”。由于某些原因,即使条件不满足,我的代码也没有捕获If语句并发出警报。
if((get['search_housing']) = 'search') {
alert('this works');
}
我不确定为什么它不尊重我的If声明。我的代码有问题吗?
答案 0 :(得分:5)
=
运算符设置值。
您正在寻找==
,比较值:
if((get['search_housing']) == 'search') {
alert('this works');
}
答案 1 :(得分:0)
if((get['search_housing']) == 'search') {
DOUBLE等于!
答案 2 :(得分:0)
也许需要这样:
if((get['search_housing']) == 'search') {
alert('this works');
}
请注意,=
表示您正在尝试将“搜索”分配给get []。
答案 3 :(得分:0)
请尝试使用gup。您找到的代码看起来不太健壮。您可能希望取消返回的值,因为您正在比较结果。
if (gup('search_housing') == 'search') { ... }
function gup( name )
{
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null )
return "";
else
return results[1];
}
答案 4 :(得分:0)
if(get('search_housing')==='search'){
alert('test');
}