jQuery:«。childrenren»vs«.find»+«.live»

时间:2012-02-26 08:46:30

标签: jquery find live children

以下是代码片段:

HTML:

<div class="thematicHeaderBox group">
 <h3 class="thematicHeader group">SMTH</h3>
 <button class="activatedUsual" style="float: right; ">on</button>
</div>

JS,不要工作:

attachEvents(
 $(".thematicHeaderBox").children(".activatedUsual"),
 self.elem.box.thematic.settings.event
);

JS,WORKS:

attachEvents(
 $(".thematicHeaderBox").find(".activatedUsual"),
 self.elem.box.thematic.settings.event
);

attachEvents func:

function attachEvents (elems, data) {

    for(var p in data){
        if(data.hasOwnProperty(p)){
            elems.live(
                data[p].name,
                data[p].callback
            );
        }
    }
}

data是要使用的对象事件名称和回调数组。

问题是为什么只有第二种变体正常工作。

1 个答案:

答案 0 :(得分:1)

.children()方法允许我们在DOM树中搜索这些元素的直接子项,并从匹配元素构造一个新的jQuery对象。

即时子女意味着一个层次结构。在您的情况下,.activatedUsual不是'.thematicHeaderBox'的直接子项。