检查当前URL是否在jquery中有这个$ string

时间:2013-09-20 09:13:51

标签: jquery

需要一些帮助来构建此JQUERY条件的逻辑语法。

如果当前url窗口包含特定的$string(index.php),那么我想将值添加到特定的<li>类。如下所示。

<ul class="nav">
  <li>...</li>
  <li>index</li>
</ul>

这是目标元素 ('.nav li:nth-child(2) ').addClass("selected")

这是我的jquery。我不太确定如何为我的逻辑编码正确的语法。

 $j(function(){
    var url = window.location.pathname;
    var string = 'index.php';

    if //current url has $string ('index.php') {
     $j( ".nav li:nth-child(2)" ).addClass( "active" );
    });
 });

4 个答案:

答案 0 :(得分:1)

你试过吗?

var url = window.location.pathname;
var string = 'index.php';
if(url.indexOf(string) !== -1) {
   $j( ".nav li:nth-child(2)" ).addClass( "active" );
}

答案 1 :(得分:0)

您可以使用以下内容:http://api.jquery.com/contains-selector/

这允许您搜索特定字符串(区分大小写)

答案 2 :(得分:0)

在服务器端这样做会更好,因为window.location.path在重定向和默认页面方案中不会包含index.php

只需回复<script>标记或来自index.php的全局设置变量:

<!-- in index.php -->
<script type="text/javascript">
     Settings.isIndex = true;
</script>

在script.js中:

var Settings = { isIndex: false };

$j(function(){
    var url = window.location.pathname;
    var string = 'index.php';

    if (Settings.isIndex) {
      $j( ".nav li:nth-child(2)" ).addClass( "active" );
    });
});

答案 3 :(得分:0)

您也可以使用。

var url = window.location.pathname;
var your_string = 'index.php';

if(url.contains(your_string) === true ) {
    $j( ".nav li:nth-child(2)" ).addClass( "active" );
}

if(url.indexOf(your_string) !== -1) {
    $j( ".nav li:nth-child(2)" ).addClass( "active" );
}