繁体   English   中英

使用jQuery在DOM中找到元素,该元素位于被单击元素之前

[英]finding an element in DOM which is just before the clicked element using jquery

我需要做这样的事情:

<ul><li>something</li></ul>
<div class='elm'>click me</div>     <!-- no 1  -->
<ul><li>something</li></ul>
<div class='elm'>click me</div>     <!-- no 2  -->
<ul><li>something</li></ul>
<div class='elm'>click me</div>     <!-- no 3  -->
<ul><li>something</li></ul>
<div class='elm'>click me</div>     <!-- no 4  -->
<ul><li>something</li></ul>
<div class='elm'>click me</div>     <!-- no 5  -->

然后使用jQuery

$(".elm").click(function(){
   //some selector which returns the ul element which is just before this div element.
});

我需要选择被单击的div元素之前的ul元素。

例如,如果用户单击div(#4),则它应返回div(#4)之前的ul元素。

像这样:

$("div.elm").click(function() {
    // Get the previous element IF it's a UL (nothing otherwise)
    var previous = $(this).prev("ul");
});

prev的文档。

现场例子

如果你想回扫描到最近的前一个兄弟ul ,跳过中间不属于任何元素ul S,你会怎么做:

$("div.elm").click(function() {
    // Find a previous UL sibling, if any
    var previous = $(this).prevAll("ul:first");
});

现场例子

如果给元素一个类而不是一个ID使其起作用,则可以使用prev

$(".elm").click(function(){
   var prev = $(this).prev();
});

注意: ID必须是唯一的 如果将相同的ID分配给多个元素,则大多数操作仅在具有该ID的第一个元素上执行。

您那里有一个巨大的错误(如果您不相信我,请使用验证器:)))...您有多个具有相同ID的div,并为其添加了计数器或其他功能。 另外,如果添加计数器,则可以毫无问题地选择它。

函数选择(ID)

{

var x = document.getElementById('elm'+ id);

}

无论如何...如果您想在没有计数器的情况下使用onclick =“ select(this.index)”之类的东西

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM