如何选择特定类中的所有项目期望项目

时间:2014-02-24 23:27:54

标签: jquery selector

我有递归HTML,我知道最外层DIV的ID。在下面的HTML我想选择所有DIV与类“citem”期望内部“弹出”里面的“citem”

<div id="pop1" class="Popup">
    <div class="container">
        <div class="citem">child item-1</div>

        <div class="Popup">
            <div class="container">
                <div class="citem">child inner item-1</div>
            </div>
        </div>

        <div>
            <div class="citem">child item-2</div>
        </div>

    </div>
</div>

<script type="text/javascript">
    if (typeof $ != "undefined") {
        $(function () {

            var Parent = $("#pop1");
            var Container = $(Parent.find(".container:first"));

            Container.find(".citem").not(".Popup .citem").each(function () {
                alert($(this).html());
            });

        });
    }
</script>

使用上面的代码没有选择任何项目,但我希望输出为“子项目-1”和“子项目-2”。

任何想法,如何为此编写查询。我不想选择所有项目,然后检查谁是父母等。

2 个答案:

答案 0 :(得分:1)

&gt;选择器只会捕获第一级孩子。

jQuery('.container > .citem')

除非他的父级具有类.container。

,否则不会与具有.citem类的项匹配

答案 1 :(得分:0)

您的主要父元素有一个"Popup"类,它会取消所有citem

的资格
<div id="pop1" class="Popup">

所以

Container.find(".citem").not(".Popup .Popup .citem").each(function () {

应该有效