Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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 使用jquery在DOM中查找位于单击的元素之前的元素_Javascript_Jquery_Css Selectors - Fatal编程技术网

Javascript 使用jquery在DOM中查找位于单击的元素之前的元素

Javascript 使用jquery在DOM中查找位于单击的元素之前的元素,javascript,jquery,css-selectors,Javascript,Jquery,Css Selectors,我需要这样做: <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 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  -->
我需要选择ul元素,它就在单击的div元素之前


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

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

功能选择(id)

{

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

}


无论如何。。。如果您想在没有计数器的情况下执行此操作,请使用类似onclick=“select(this.index)”

的方法,您会遇到一个巨大的错误(如果您不相信我,请使用验证器:)。。。您有多个具有相同id的div,请为它们添加计数器或其他内容。另外,如果您添加了一个计数器,您可以毫无问题地选择它

功能选择(id)

{

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

}

无论如何。。。如果您想在没有计数器的情况下执行此操作,请使用类似以下内容的onclick=“select(this.index)”

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

如果您想扫描回最近的前一个同级
ul
,跳过中间任何不是
ul
s的元素,您应该执行以下操作:

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

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

如果您想扫描回最近的前一个同级
ul
,跳过中间任何不是
ul
s的元素,您应该执行以下操作:

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

如果您给元素一个类而不是一个ID使其工作,那么您可以使用:


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

如果为元素提供类而不是ID以使其工作,则可以使用:


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

哦,是的,这是因为复制/粘贴,现在我已编辑:)哦,是的,这是因为复制/粘贴,现在我已编辑:)这是注释,不是答案。(请注意,这是一个很好的评论,就像问题的原始形式一样,但这就是“评论”链接的作用。)这是一个评论,不是答案。(请注意,对于问题的原始形式,这是一个很好的评论,但这就是“评论”链接的作用。)