Трябва да направя нещо подобно:
<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.
});
Трябва да избера елемента ul, който е точно преди елемента div, върху който се щраква.
като ако потребителят щракне върху div (# 4), тогава той трябва да върне елемента ul, който е точно преди div (# 4).
Отговори:
3 за отговор № 1Като този:
$("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");
});
1 за отговор № 2
Ако дадете на елементите си клас вместо ID, за да работи, тогава можете да използвате prev
:
$(".elm").click(function(){
var prev = $(this).prev();
});
Забележка: ИД трябва да са уникални. Ако присвоите един и същ ID на повече от един елемент, повечето операции се изпълняват само върху първия елемент с този ID.
0 за отговор № 3
Имате огромна грешка там (използвайте валидатор, аконе ми вярвате :))) ... имате повече от един div с един и същ идентификатор, добавете брояч към тях или нещо подобно. Също така, ако добавите брояч, можете да го изберете без проблем.
избор на функция (id)
{
var x = document.getElementById ("elm" + id);
}
Както и да е ... ако искате да го направите без брояч, използвайте нещо като onclick = "select (this.index)"