1

我正在拉一个网址,然后将其转换为大写。我想将该变量加载到 .search 函数中以过滤结果。

这是我到目前为止所拥有的,但它无法正常工作:

$(function() {
    var search_name = location.search;
    var ucSearch = search_name.toUpperCase();

    if (search_name.search("airports")  > 0) {
        $("div.more a:contains("+ ucSearch +")").addClass("active");
    }

});

我认为这可能只是一个语法问题。

我想最终我会想要这样的东西:

$(function() {
   var search_name = location.search;
   var ucSearch = search_name.toUpperCase();

   if (search_name.search("+ ucSearch +")  > 0) {
       $("div.more a:contains("+ ucSearch +")").addClass("active");
   }
});

这样,它将 url 中的变量与锚 html 中的变量匹配。

更新:

这是我的html

<div class="more">
<ul>
  <a class="static" href="#">ALL</a>
  <li><a class="static" href="#">AIRPORTS</a></li>
</ul>
</div>

所以我希望 jquery 抓取 url 并将该 url 文本与锚标记中的 html 文本匹配。在这种情况下,“机场”。我想让它更流畅的原因是,锚标签是什么,“机场”和“车库”。然后它可以将传递给 url 的内容与相应的锚标记匹配,并添加“活动”类。

这是小提琴

网址是 site/?type=AIRPORTS

4

1 回答 1

1

前提是window.location.search将为您提供 GET 查询字符串(在您的示例中,这将包含?type=AIRPORTS),我们需要从过滤它开始以仅获取搜索词。一种非常原始的方法是只使用substr. 例如

var term = window.location.search.substr('?type='.length);

现在term包含AIRPORTS. 为了确保它是大写的,我们可以调用ToUpperCase它。例如

var term = window.location           // "http://somesite.com/?type=AIRPORTS"
           .search                   // "?type=AIRPORTS"
           .substr('?type='.length)  // "AIRPORTS"
           .toUpperCase();           // "AIRPORTS"

现在,转到 jQuery 并找到其中包含此搜索词的所有链接,并将它们的类设置为活动:

$('div.more a:contains("' + term + '")').addClass('active');

而且,一起:

$(function(){ // document.ready
  var term = window.location.search.substr('?type='.length).toUpperCase();
  $('div.more a:contains("' + term + '")').addClass('active');
});
于 2012-06-25T03:02:43.430 回答