如何检查 url 是不是在 jQuery 中没有查询字符串?
Posted
技术标签:
【中文标题】如何检查 url 是不是在 jQuery 中没有查询字符串?【英文标题】:How to check if url has no query string in jQuery?如何检查 url 是否在 jQuery 中没有查询字符串? 【发布时间】:2016-11-20 18:49:36 【问题描述】:我正在 WordPress 中编辑表单。我希望我的 jquery 脚本在 url 没有查询字符串时执行。
网址不应该有这样的查询字符串:http://127.0.0.1/mybetabizopi/login/?action=lostpassword
我只希望我的脚本在 url 像这样或没有查询字符串时运行: http://127.0.0.1/mybetabizopi/login/
这是我当前的脚本:
var j = jQuery.noConflict();
j(function()
j('#login #user_login').attr('placeholder', 'Username');
j('#login #user_pass').attr('placeholder', 'Password');
j('#login #user_login').addClass('form-control');
j('#login #user_pass').addClass('form-control');
j('#login #loginform label').wrap( "<div class='input-group'></div>" );
j('#login .form-control').each(function()
j(this).insertAfter(j(this).parent());
);
j('#loginform .input-group > label').remove();
j('<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-user" aria-hidden="true"></span></span>').insertBefore('#user_login');
j('<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-lock" aria-hidden="true"></span></span>').insertBefore('#user_pass');
);
感谢任何帮助。
【问题讨论】:
请检查这个答案(由 Felix Kling 提供):***.com/a/5817566/4287861 这篇博文可能有用:jquery-howto.blogspot.co.uk/2009/09/… @RanHassid 用于获取没有查询字符串的 URL,不检查是否有查询字符串 【参考方案1】:您可以在window.location.href
上使用indexOf
来检查是否有?
字符。
请注意,您可以根据需要命名提供给 document.ready 处理程序的 jQuery 实例,因此您仍然可以在该函数范围内使用 $
变量,即使全局 $
不再指向 jQuery。此外,您可以通过缓存和重用选择器来提高 jQuery 代码的效率。试试这个:
jQuery(function($)
if (window.location.href.indexOf('?') == -1) // no querystring exists
$('#login #user_login').attr('placeholder', 'Username').addClass('form-control');
$('#login #user_pass').attr('placeholder', 'Password').addClass('form-control');
$('#login #loginform label').wrap("<div class='input-group'></div>");
$('#login .form-control').each(function()
$(this).insertAfter($(this).parent());
);
$('#loginform .input-group > label').remove();
$('<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-user" aria-hidden="true"></span></span>').insertBefore('#user_login');
$('<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-lock" aria-hidden="true"></span></span>').insertBefore('#user_pass');
);
【讨论】:
【参考方案2】:您可以使用位置对象的搜索属性来做到这一点。
var querystring=window.location.search;
alert(querystring);
它会返回URL的查询字符串,用它来检查URL是否有查询字符串,只有当它为空时才执行jQuery代码。
这样,
if(querystring=="")
// Execute jQuery code.
【讨论】:
您应该是一名高级开发人员。谢谢楼主【参考方案3】:你可以简单地使用 javascripts location.search
来达到这个目的:
<script type="text/javascript">
var j = jQuery.noConflict();
j(function()
var hasQuery = (location.search && location.search != undefined)?true : false;
if(!hasQuery)
j('#login #user_login').attr('placeholder', 'Username');
j('#login #user_pass').attr('placeholder', 'Password');
j('#login #user_login').addClass('form-control');
j('#login #user_pass').addClass('form-control');
j('#login #loginform label').wrap( "<div class='input-group'></div>" );
j('#login .form-control').each(function()
j(this).insertAfter(j(this).parent());
);
j('#loginform .input-group > label').remove();
j('<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-user" aria-hidden="true"></span></span>').insertBefore('#user_login');
j('<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-lock" aria-hidden="true"></span></span>').insertBefore('#user_pass');
);
</script>
【讨论】:
非常感谢您是一位大师【参考方案4】:你好用下面的函数来检查查询字符串是否存在
function checkQueryStringExists()
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
if(hashes.length>0)
return true;
else
return false;
【讨论】:
以上是关于如何检查 url 是不是在 jQuery 中没有查询字符串?的主要内容,如果未能解决你的问题,请参考以下文章
如何检查url查询字符串是不是等于javascript(或jquery)[重复]