Как выбрать "четных" родителей?
Я пытаюсь сделать оператор if, где, если родительский элемент кнопки является четным потомком своего родителя, сделать alert("it works");
еще alert("nope");
, это, наверное, что-то действительно легко, я действительно новичок в этом!:) Вот мой текущий код:
HTML:
<div>
<div>
<button>#0</button>
</div>
<div>
<button>#1</button>
</div>
<div>
<button>#2</button>
</div>
<div>
<button>#3</button>
</div>
</div>
JS:
$(function () {
$("button").click(function () {
var $parent = $(this).parent();
if ($parent.is(":even")) {
alert("it works");
} else {
alert("nope");
}
});
});
jsFiddle: http://jsfiddle.net/goldson/Rn6gz/1/
Заранее спасибо!
2 ответа
Решение
Вы можете использовать index(), чтобы получить индекс и использовать оператор по модулю. %
знать, если это event
или же odd
,
$(function () {
$("button").click(function () {
var $parent = $(this).parent();
if ($parent.index() % 2 == 0) {
alert("it works");
} else {
alert("nope");
}
});
});
Обходной путь - добавить классы к элементам четного div:
<div id="parentDiv">
<div>
<button>#0</button>
</div>
<div>
<button>#1</button>
</div>
<div>
<button>#2</button>
</div>
<div>
<button>#3</button>
</div>
</div>
$(function () {
var arr = $('#parentDiv div');
arr.filter(":even").addClass("even");
$("button").click(function () {
var $parent = $(this).parent();
if ($parent.is(".even")) {
alert("it works");
} else {
alert("nope");
}
});
});