"/>

返回嵌套元素的索引(Return index of nested element)

我有两个嵌套的ul包含链接。

我想在其父级ul找到被点击的索引

<div id="main_nav">
<ul>
    <li>
        <ul>
            <li><a href="/url/">LINK</link></li>
            <li><a href="/url/">LINK</link></li>
            <li><a href="/url/">LINK</link></li>
        </ul>
    </li>
</ul>
<ul>
    <li>
        <ul>
            <li><a href="/url/">LINK</link></li>
            <li><a href="/url/">LINK</link></li>
            <li><a href="/url/">LINK</link></li>
        </ul>
    </li>
</ul>

</div>

我正在使用以下代码:

$("#main_nav ul ul a").click(function () {

    var index = $('#main_nav ul ul a').index(this);

    alert(index);
});

这似乎返回parent of the parent而不是parent of the parenta的索引(我希望这是有意义的)即,单击第二次ul中的第二个链接将返回索引4而不是1。

有人可以解释我哪里出错吗? 我怀疑它很简单,但我无法弄明白。

非常感谢。


I have two nested ul which contain links.

I want to find the index of the clicked a within it's parent ul

<div id="main_nav">
<ul>
    <li>
        <ul>
            <li><a href="/url/">LINK</link></li>
            <li><a href="/url/">LINK</link></li>
            <li><a href="/url/">LINK</link></li>
        </ul>
    </li>
</ul>
<ul>
    <li>
        <ul>
            <li><a href="/url/">LINK</link></li>
            <li><a href="/url/">LINK</link></li>
            <li><a href="/url/">LINK</link></li>
        </ul>
    </li>
</ul>

</div>

I'm using the following code:

$("#main_nav ul ul a").click(function () {

    var index = $('#main_nav ul ul a').index(this);

    alert(index);
});

which seems to return the index of the a within the parent of the parent instead of just the parent (I hope that makes sense) i.e. Clicking the second link in the second ul returns an index of 4 instead of 1.

Could somebody explain where I'm going wrong with this? I suspect it's something simple but I can't figure it out.

Many thanks.

2023-03-27 22:03

满意答案

您需要获取父li元素的索引。 否则,您将获得列表项内锚点的索引,该索引始终为零。

$(this.parentNode).index();

You need to get the index of the parent li element. Otherwise you are getting the index of the anchor inside the list item, which will always be zero.

$(this.parentNode).index();

相关问答

更多

Python:测试嵌套列表中某些索引的相等性(Python: Test for equality of certain index in nested lists)

我将使用具有生成器表达式的all()函数作为其参数。 all(sublist[0] == nlist[0][0] for sublist in nlist) 简而言之,如果原始列表中的每个子列表的每个sublist[0] == nlist[0][0] ,则all()将返回True 。 如果任何项目不等于nlist[0][0] ,它将返回False 。 I would use the all() function with a generator expression as its paramet...

CouchBase Index嵌套元素(CouchBase Index nested elements)

根据我的发现,如果您尝试创建索引,则必须排除不包含要编入索引的字段的文档。 所以对于我上面的例子,我添加了: where我的查询开始使用我的二级索引的where语句中name is not missing 。 Couchbase网站下面的简介让我得出了这个发现 注意:索引器未对MISSING项目编制索引。 要利用覆盖索引并使索引符合条件,查询需要排除索引键表达式求值为MISSING的文档。 Based on my findings if you are attempting to create a...

如何在嵌套列表中将索引1处的元素转换为upper()?(how to convert element at index 1 to upper() in a nested list?)

只需要将列表的其他部分拼接在一起,确保所有元素都在列表中。 [[x[0], x[1].upper()] + x[2:] for x in ed_sheeran] Just need to stitch together the other parts of the list ensuring that all elements are in lists. [[x[0], x[1].upper()] + x[2:] for x in ed_sheeran]

返回向量中索引处的元素(Return element at index in a vector)

erase可以删除指定索引处的元素,但不返回该元素。 你可以这样做: aboutToBeErased = myVector.at(index); myVector.erase(myVector.begin() + index); 但要小心,矢量不擅长去除不在矢量末尾的元素。 对于大型载体,这可能是昂贵的操作。 erase can remove an element at a specified index, but does not return that element. You can ju...

返回嵌套元素的索引(Return index of nested element)

您需要获取父li元素的索引。 否则,您将获得列表项内锚点的索引,该索引始终为零。 $(this.parentNode).index(); You need to get the index of the parent li element. Otherwise you are getting the index of the anchor inside the list item, which will always be zero. $(this.parentNode).index();

Swift访问由`NSIndexPath`指定的嵌套数组元素(Swift accessing nested array element specified by `NSIndexPath`)

我会尝试递归函数。 但是,由于您不知道树中的级别,因此可以尝试搜索特定路径。 我们假设您的节点类是这样的: class Node<T> { var data: T var children: Array<Node<T>>? init(data: T, children: Array<Node<T>>?) { self.data = data self.children = children } } 你可以做这样的功能: func ...

使用z-index在其他元素前面创建一个嵌套元素?(Using z-index to make one nested element in front of other element?)

首先,你发布的html中有一个错误: <body> <div class="top">some content</div> <div class="bar"> <div class="inner-bar">some content</div> </div> </body> 你没有关闭最后一个div :) 至于其余的: 先生,先生你好! http://jsfiddle.net/8AJnD/31/ .top { position: absolute; ...

Swift对数组进行排序并返回索引和元素数组(Swift sort an array and return an array of index and element)

如果我正确理解了你的问题,那么你可以使用enumerated()来获取一系列偏移/元素对,并根据元素对其进行排序。 例: let array = ["C", "A", "B"] let sortedElementsAndIndices = array.enumerated().sorted(by: { $0.element < $1.element }) print(sortedElementsAndIndices) // [(1, "A"), (2, "B"), (0, "C")] ...

在Python中,如何为仲任嵌套元素返回索引列表?(In Python, how do you return a list of indexes for an arbitarily nested element?)

def nested_find(l, e): for i, x in enumerate(l): if isinstance(x, list): t = nested_find(x, e) if t: return [i] + t elif x == e: return [i] 如果e不在l则返回None def nested_find(l, e): ...

index confusion:嵌套的JavaScript循环 - for循环中的forEach(index confusion: nested JavaScript loops - forEach within a for loop)

你说element3我假设你的意思是element2 for (var i = 0; i < 2; i++) { console.log('i:', i); ["element0", "element1", "element2"].forEach(function (element, index) { console.log('element:', element, 'index:', i); }); } 你使用i作为循环计数器和forEach索引 you said element3 i...

相关文章

更多

The content of element type "package" must match "...

在编写后台登陆模块时,将许多默认的设置放在一个名为default的package 里。然后再定义其他 ...

Hibernate Search(基于version3.4)--第四章Mapping entities to the index structure

Mapping entities to the index structure 4.1. 映射一个实 ...

顶 lucene--创建index

这是我在lucene in action 中看到的,本来想翻译一下,但是翻译成汉语就没有原来的味道了。 ...

利用SolrJ操作solr API完成index操作

使用SolrJ操作Solr会比利用httpClient来操作Solr要简单。SolrJ是封装了http ...

Solr4.7.2启动时的Index locked for write for core问题分析

Solr在启动时,通过多线程的方式加载core,在加载完每个core的配置文件后,实例化了一个Solr ...

Solr4.8.0源码分析(3)之index的线程池管理

Solr4.8.0源码分析(3)之index的线程池管理 Solr建索引时候是有最大的线程数限制的, ...

[Hadoop 2.2 + Solr 4.5]系列之三:MapReduce + Lucene 生成Index文件

[Hadoop 2.2 + Solr 4.5]系列之三:MapReduce + Lucene 生成In ...

我的架构演化笔记 13:自己动手写Nutch-index插件导入数据到MongoDB

需求是导入数据到MongoDB. 1创建目录 在$Nutch_home/src/plugin ...

merge solr index &&&&& very import create new core

http://wiki.apache.org/solr/MergingSolrIndexes http ...

部署index.html,局域网能访问,远程连接超时

把index.html部署到web服务器,用公司的其他电脑访问“服务器IP:端口号”可以正常访问到in ...

最新问答

更多

绝地求生、荒野行动、香肠派对 哪个更好玩???(都是吃鸡类游戏)

PC上的绝地求生,是最早也是最火的大逃杀游戏。 荒野行动是网易抄袭蓝洞绝地求生制作的手游。相似度90%,还有他一起出的终结折2,这2款正在被蓝洞告,打官司呢。 手游上的绝地求生有2部都是蓝洞授权(收钱)给腾讯开发的正版ID手游。所以跟PC上做的一模一样,蓝洞也没话说。 加上吃鸡国服也是腾讯独家代理,所以根本没有什么可说的。只要这个类型的 过于相似的,腾讯都可以借蓝洞之手起诉。打压同行是国内BAT最爱干的事嘛! 香肠派对画风虽然不一样,但核心玩法还是跟人家正版的一样的,同样也是没有被授权的。 98

如何在jQuery集合中选择第n个jQuery对象?(How to select the nth jQuery object in a jQuery collection?)

你可以使用eq : var rootElement = $('.grid').find('.box').eq(0); rootElement.find('.a'); /* Use chaining to do more work */ You can use eq: var rootElement = $('.grid').find('.box').eq(0); rootElement.find('.a'); /* Use chaining to do more work */

ASP NET使用jQuery和AJAX上传图像(ASP NET upload image with jQuery and AJAX)

您可以自己手动设置FormData键和值。 Upload 创建FormData并设置新的键/值 $("#btnUpload").on("click", function(e) { e.preventDefault(); var file = $("#imguploader").get(0).file

SQL Server XML查询中包含名称空间的位置(SQL Server XML query with namespaces in the where exist)

您可能希望使用#temp.identXml.query而不是#temp.identXml.query 。 您可以在这里阅读更多相关信息SQL Server XML exists() 我相信你也可以像这样使用它 Select #temp.identXml.value('(/*:PersonIdentity/*:MasterIndexes/*:PersonIndex/*:SourceIndex)[1]','varchar(100)') as Ident ,#temp.identXml.value(

宁夏银川永宁县望远镇哪里有修mp5的?

胜利街有家电维修,电脑城,银川商场多得很…

我想用更新的日期标记所有更新的行(I would like to mark all updated rows with the date that they have been updated)

您可以使用更新后触发的触发器来执行此操作。 给出如下表: create table your_table (id int primary key, val int, last_update datetime) 每当您更新表中的内容时,此触发器将设置last_update值。 CREATE TRIGGER trigger_name ON your_table AFTER UPDATE AS BEGIN UPDATE your_table SET your_ta

郑州会计培训班

招生的,至于时间吗,就看你自己的时间段了,你可以致电0371-63300220.他们会帮你选择一下的。离你最近,最专业的培训班。

如何定位数组中的负数,并得到所有正数的总和?(How to target e negative number from an array, and get the sum of all positive numbers?)

只需创建一个条件来检查它是正数还是负数,然后定义一个空的数组negatives ,如果数字是负数,则将其推到负数组中,如果是正数,则将其添加到sum变量中,请查看下面的工作示例。 function SummPositive( numbers ) { var negatives = []; var sum = 0; for(var i = 0; i < numbers.length; i++) { if(numbers[i] < 0) { negati

在响应图像上叠加网格(Overlay grid on responsive image)

使用两个linear-gradient s,我们可以创建两个简单的线条,然后每隔n%重复一次background-size 。 它看起来像这样: background: linear-gradient(to bottom, #000 2px, transparent 2px), linear-gradient(to right, #000 2px, transparent 2px); background-size: 10%; 两个渐变创建两条相交的线,长度为百分比,如下所示: 使用默认的b

无法让POST在Azure网站上运行(Could not get POST to work on Azure Website)

最后我找到了答案......我不得不删除尾随的斜线! 我使用了“ https://example.com/api/messages/ ”,这将自动产生GET,无论我使用PostAsync还是PostAsJsonAsync。 使用“ https://example.com/api/messages”,GET和POST似乎都运行良好! Finally I've found the answer.... I had to remove the trailing slash! I've used "ht