Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用一的索引<;李>;在识别相应的<;李>;_Javascript_Jquery_Pointers_Indexing_Html Lists - Fatal编程技术网

Javascript 如何使用一的索引<;李>;在识别相应的<;李>;

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>

我一直在研究这个问题,对于如何通过jQuery创建指针和实例化指针,我没有一个扎实的理解,这让我很沮丧

我有两份清单:

<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();
    });