我希望 jQuery 提取 url,然后解析它以查找机场。如果找到机场,我想在列表项中添加一个类 <a
> 包含 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 获取 url。 var search_name = location.search; 警报(搜索名称);
给我弹窗
?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");
}
});
但这行不通。
最佳答案
...经过一些小的更正,这应该可以工作:http://jsfiddle.net/a4tWE/2/
改用 location.href
:contains 选择器区分大小写
移除括号
if ((path_name.search("airports") > 0) {
删除了 find,as contains 作业。
关于jquery - 使用 location.pathname 添加一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11181524/