我需要做这样的事情:
<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之前的ul元素(#4)。
答案 0 :(得分:3)
像这样:
$("div.elm").click(function() {
// Get the previous element IF it's a UL (nothing otherwise)
var previous = $(this).prev("ul");
});
请参阅文档中的prev
。
如果你想扫描回到最近的兄弟ul
,跳过中间不是ul
的任何元素,你会做:< / p>
$("div.elm").click(function() {
// Find a previous UL sibling, if any
var previous = $(this).prevAll("ul:first");
});
答案 1 :(得分:1)
如果您为元素提供类而不是ID以使其有效,那么您可以使用prev
:
$(".elm").click(function(){
var prev = $(this).prev();
});
注意: ID必须是唯一的。如果为多个元素分配相同的ID,则大多数操作仅在具有此ID的第一个元素上执行。
答案 2 :(得分:0)
你有一个巨大的错误(使用验证器,如果你不相信我:)))...你有多个具有相同id的div添加一个计数器或他们的东西。此外,如果您添加计数器,您可以毫无问题地选择它。
功能选择(id)
{
var x = document.getElementById('elm'+ id);
}
无论如何......如果你想在没有计数器的情况下使用onclick =“select(this.index)”