我希望jQuery拉出网址,然后解析它以找到机场。如果找到机场,我想在列表项<a
&gt;中添加一个类。标签包含html“机场”。
这是我到目前为止所做的:
JQuery的
path_name=location.pathname;
if ((path_name.search("airports") > 0) {
$("div.more li a").find(":contains('airports')").addClass("current-menu-item");
}
html看起来像这样:
<ul>
<a class="static" href="#">ALL</a>
<li><a class="static" href="#">AIRPORTS</a></li>
</ul>
网址为:
http://localhost/site/?type=airports
这是语法问题还是“尝试其他方式”问题?
更新:
使用警报建议,我能够验证我使用location.search获取网址。 var search_name = location.search; 警报(SEARCH_NAME);
给了我弹出窗口
?type=airports
所以我得到了正确加载的变量,我只是无法编写添加类的逻辑。到目前为止,这些建议正在进行中。
更新2
这适用于孤立事件。
var search_name = location.search;
if (search_name.search("airports") > 0) {
alert(search_name);
$("div.more a:contains('AIRPORTS')").addClass("active");
}
});
我希望通过传递变量来提高灵活性。
你怎么做?这就是我到目前为止所拥有的
$(function() {
var search_name = location.search;
if (search_name.search("+ search_name +") > 0) {
alert(search_name);
$("div.more a:contains('AIRPORTS')").addClass("active");
}
});
但这不起作用。
答案 0 :(得分:1)
location.search
是包含机场的部分。这是?
之后的所有内容,并未包含在location.pathname
答案 1 :(得分:1)
来自MDN:从搜索字符串中获取值的示例。
function loadPageVar (sVar) {
return unescape(window.location.search.replace(new RegExp("^(?:.*[&\\?]" + escape(sVar).replace(/[\.\+\*]/g, "\\$&") + "(?:\\=([^&]*))?)?.*$", "i"), "$1"));
}
alert(loadPageVar("name"));
答案 2 :(得分:1)
......通过一些细微的修正,这应该有效:http://jsfiddle.net/a4tWE/2/
使用location.href代替
:包含选择器工作区分大小写
删除了支架
if((path_name.search(“Airports”)&gt; 0){
删除了find,因为包含了这项工作。