Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何基于url编写基本jquery if语句_Javascript_Jquery - Fatal编程技术网

Javascript 如何基于url编写基本jquery if语句

Javascript 如何基于url编写基本jquery if语句,javascript,jquery,Javascript,Jquery,我不知道为什么这不起作用。虽然我确信这与我在if语句中处理url的方式有关。基本的Jquery/javascript知识 var url = $(location).attr('href'); if (url == 'http://www.website.com/test/index.html') { $('#HomeButton').bind('click', HomeButton); } function HomeButton(e) { e.preventDefault(); d

我不知道为什么这不起作用。虽然我确信这与我在if语句中处理url的方式有关。基本的Jquery/javascript知识

var url = $(location).attr('href');

if (url == 'http://www.website.com/test/index.html')
{
  $('#HomeButton').bind('click', HomeButton);
} 

function HomeButton(e) {
e.preventDefault();

doSomething....

};

window.location
不是DOM元素,因此不能对其使用jQuery方法

.href
实际上是
位置
对象的属性


直接使用它-
如果(window.location.href====…)
不使用jquery访问标准对象属性

你能行

if (document.location.href == 'http://www.website.com/test/index.html')
但是您永远不应该与整个URL进行比较:如果您更改域、在其他地方测试、使用https、添加参数等,您将得到错误的结果。您应该使用
location
的预期属性,即
pathname

if (document.location.pathname == '/test/index.html')

如有疑问,如果您想确定您的路径名,只需打开Chrome的开发者工具(键入F12)并在控制台上键入:
document.location.pathname

您也可以使用click()方法,而不必绑定到函数<代码>$(“#HomeButton”)。单击(函数(){//do stuff})@Conner实际上,规范的jQuery现在是
.on('click',…)
Ok然后
.on('click',function(e){//do stuff})我在检查if时遇到了问题。。。所以这是可行的:如果(window.location.href==='),但只有当有人在地址中不使用www进行导航时……如果有人这样做,该函数将无法工作。有没有一种方式可以说:如果(window.location.href===''和')???在我上面的示例中,由于某种原因,注释仅显示website.com/test,而在显示的最后一个链接上,它的前面应该有一个www。所以基本上我是在问,在if语句中是否有一种方法可以解释这两个url?这两个URL都是website.com和website.com,前面有www