Javascript 如何使用一的索引<;李>;在识别相应的<;李>;
我一直在研究这个问题,对于如何通过jQuery创建指针和实例化指针,我没有一个扎实的理解,这让我很沮丧 我有两份清单:Javascript 如何使用一的索引<;李>;在识别相应的<;李>;,javascript,jquery,pointers,indexing,html-lists,Javascript,Jquery,Pointers,Indexing,Html Lists,我一直在研究这个问题,对于如何通过jQuery创建指针和实例化指针,我没有一个扎实的理解,这让我很沮丧 我有两份清单: <div class="listSet"> <ul id="list1"> <li>One bug <a href="#">X</a></li> <li>Two bug <a href="#">X</a></li>
<div class="listSet">
<ul id="list1">
<li>One bug <a href="#">X</a></li>
<li>Two bug <a href="#">X</a></li>
<li>Three bug <a href="#">X</a></li>
</ul>
</div>
</div class="listSet">
<ul id="list2">
<li><img src="bug1.jpg"></li>
<li><img src="bug2.jpg"></li>
<li><img src="bug3.jpg"></li>
</ul>
</div>
如何获得第二个列表中对应LI的句柄?我想从屏幕上删除它们,但似乎无法复制第二个列表的索引能够.remove()
两个LIs的想法
非常感谢您的帮助。您可以将此方法与此方法结合使用来实现此目的:
$("#list1 li a").click(function(e) {
e.preventDefault();
var $li = $(this).parent();
$("#list2 li:eq(" + $li.index() + ")").add($li).remove();
});
这将删除具有相同索引的li
元素
工作示例:
或者,您可以像这样使用:n子项
选择器:
$("#list1 li a").click(function() {
var child = $(this).parent().index() + 1;
$("#list1, #list2").find("li:nth-child(" + child + ")").remove();
});
工作示例:以下是一个示例:
$('#list1 > li > a').click(function(e) {
e.preventDefault();
var idx = $(this).closest('li').index();
var corresp = $('#list2 > li').eq(idx);
alert(corresp.children('img').attr('src'));
// to remove the <li> element: corresp.remove();
});
$('#列表1>li>a')。单击(函数(e){
e、 预防默认值();
var idx=$(this).closest('li').index();
var corresp=$('#list2>li').eq(idx);
警报(corresp.children('img').attr('src'));
//要删除元素,请执行以下操作:corresp.remove();
});
为了澄清:eq()
和:nth-child()
之间的区别:eq
是元素的零基索引,而nth child
是元素的一基索引n个孩子
也可以接受像2n+3
或甚至
这样的公式。首先,感谢您的帮助。我检查了JSFIDLE并看到了结果。我正在查看您的第一个示例中的代码,但不清楚:1)preventDefault(),但将查找它。2) 通过让li有一个美元符号,这是指针的一种形式吗?3) eq是使用基于零的索引服务(正如-zzbov所说)。正如我所读到的,你正在查找点击的li的索引,然后将其添加到第二个列表li中。然后将它们都移除。谢谢。在第二个示例中,您现在正在连接两个列表并查找子列表(索引+1)并将它们都删除。我没见过这个。谢谢。@Sanford 1)preventDefault()
阻止单击锚定标记的操作。2) 使用$
作为前缀是我用来作为标准来表示这个变量已经是jQuery对象的东西。3) 这是正确的Thiefmaster-什么是大于符号?对corresp.children函数很感兴趣。只选择直接后代。而corresp
是li;要将img放入其中,我使用children()。但是,如果要删除整个li,请完全删除警报行,并且只调用corresp.remove()代码>
$('#list1 > li > a').click(function(e) {
e.preventDefault();
var idx = $(this).closest('li').index();
var corresp = $('#list2 > li').eq(idx);
alert(corresp.children('img').attr('src'));
// to remove the <li> element: corresp.remove();
});