/ / намиране на елемент в DOM, който е точно преди щраквания елемент с помощта на jquery - javascript, jquery, css-селектори

намиране на елемент в DOM, който е точно преди кликвания елемент с jquery - 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 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, пропускайки всички елементи между тях, които не са uls, вие бихте направили:

$("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)"