如何根据位置和 li 元素列表设置 Jquery 变量?
How would I set a Jquery variable based on the location and a list of li elements?
我正在使用 JQuery 1.11。我有以下 HTML …
<div id="tabs">
<ul class="nav">
<li><a href=“/my_object/index”>My Objects</a></li>
<li><a href="/my_object/search">Lookup Results</a></li>
…
<li><a href="/my_object/edit”>Edit Stuff</a></li>
</ul>
</div>
如果锚标记的 href 属性与当前位置匹配,我将如何设置变量“activeIndex”作为锚标记的索引?因此,例如,如果当前位置是“https://mydomein.com/my_object/search”,则 activeIndex 变量将为“1”。
你可以使用 window.location.pathname:
function activeIndex() {
var ul = document.getElementsByClassName("nav");
var listItems = ul[0].getElementsByTagName("li");
for (var i = 0; i < listItems.length; i++) {
var a = listItems[i].getElementsByTagName("a");
if (a[0].getAttribute("href") === window.location.pathname)
return i;
}
return -1;
}
您可以使用 index
方法确定 jquery 个元素数组中元素的索引。
var activeIndex;
$('ul.nav li a').each(function()
{
if($(this).attr('href') == window.location.pathname)
activeIndex = $('ul.nav li a').index(this);
});
我正在使用 JQuery 1.11。我有以下 HTML …
<div id="tabs">
<ul class="nav">
<li><a href=“/my_object/index”>My Objects</a></li>
<li><a href="/my_object/search">Lookup Results</a></li>
…
<li><a href="/my_object/edit”>Edit Stuff</a></li>
</ul>
</div>
如果锚标记的 href 属性与当前位置匹配,我将如何设置变量“activeIndex”作为锚标记的索引?因此,例如,如果当前位置是“https://mydomein.com/my_object/search”,则 activeIndex 变量将为“1”。
你可以使用 window.location.pathname:
function activeIndex() {
var ul = document.getElementsByClassName("nav");
var listItems = ul[0].getElementsByTagName("li");
for (var i = 0; i < listItems.length; i++) {
var a = listItems[i].getElementsByTagName("a");
if (a[0].getAttribute("href") === window.location.pathname)
return i;
}
return -1;
}
您可以使用 index
方法确定 jquery 个元素数组中元素的索引。
var activeIndex;
$('ul.nav li a').each(function()
{
if($(this).attr('href') == window.location.pathname)
activeIndex = $('ul.nav li a').index(this);
});