如何选择“:甚至”父母?

时间:2012-12-14 11:52:19

标签: javascript jquery jquery-selectors

我正在尝试制作一个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 个答案:

答案 0 :(得分:6)

您可以使用index()获取索引并使用模数运算符%来了解它是event还是odd

<强> Live Demo

$(function () {
    $("button").click(function () {
        var $parent = $(this).parent();
        if ($parent.index() % 2 == 0) {
            alert("it works");
        } else {
            alert("nope");
        }
    });
});​

答案 1 :(得分:3)

一种解决方法是向偶数div元素添加类:

<强> Demo

<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");
        }
    });

});