我正在拉一个网址,然后将其转换为大写。我想将该变量加载到.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中的变量与anchor 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文本与anchor标记中的html文本进行匹配。在这个例子中“AIRPORTS”。我想让它变得更加流畅的原因是,有什么可以锚定标签,“AIRPORTS”和“GARAGES”。然后它可以匹配传递给url的相应锚标记并添加“active”类。
以下是fiddle
url是site /?type = AIRPORTS
答案 0 :(得分:1)
前提是window.location.search
会为您提供GET查询字符串(在您的示例中,这将包含?type=AIRPORTS
)我们需要开始过滤此选项以仅获取搜索字词。一种非常原始方式就是使用substr
。 e.g。
var term = window.location.search.substr('?type='.length);
现在term
包含AIRPORTS
。为确保资本化,我们可以在此处致电ToUpperCase
。 e.g。
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');
});