如果用户在特定页面上并且存在div,则执行某些操作

时间:2014-01-31 13:33:28

标签: javascript jquery if-statement

我想检查一下我是否在某个特定页面上,如果我在该页面内并且存在一个div来做某事。

我知道如何检查特定页面是否存在:if('http://'+location.hostname+location.pathname+'/stats')

我知道检查是否存在特定的div:if($(".div").length) {

但如何在第一个if?

中添加第二个if

我试过这个但是没有用:

if('http://'+location.hostname+location.pathname+'/stats') {
   if($(".div").length) { //do something;}
}

这可以用jQuery吗?

4 个答案:

答案 0 :(得分:0)

您可以使用ajax调用,在成功回调中,您可以检查该div元素是否存在

答案 1 :(得分:0)

您可以使用jQuery.load加载页面并获取特定元素的内容,如下所示:

 $( "#result" ).load( "ajax/test.html #container" );

在这里,jQuery将加载test.html页面并在内部解析,然后返回标识为container的元素的内容。

您可以在jQuery Load documentation

中看到完整的参考资料

答案 2 :(得分:0)

您只是测试此处存在一个字符串(总是评估为true),而不是当前的URL等于您的预期。

if(location.pathname === "/stats" && $(".div").length) {
    // Do Something
}

您需要使用equals参数与上面的路径名进行比较。

答案 3 :(得分:0)

如果没有任何服务器端支持,您将能够达到您想要的效果(除非所有感兴趣的页面都位于同一个域中)。由于Same-origin Policy,浏览器会阻止您使用AJAX收集位于其他域中的内容。

然而,解决方案非常简单:实现执行该任务的服务器端服务,并从客户端应用程序中使用它。如果您不能,则可以使用YQL等在线服务,而不是实施自己的服务。

请注意if ('http://www.some-url-in-string.com')没有达到预期的效果。字符串不会根据其内容继承任何功能( 1。几乎为真)。我可以创建一个字符串,例如'the-most-important-string-of-all-times',JS引擎不会对它进行不同的处理。

1。空字符串是假的,而所有其他字符串都是真实的。

!!''; //false
!!'anything'; //true