在jquery中,使用类捕获输入的更改事件的最佳选择器是什么,但是在具有特定Id的ul内部?

时间:2012-04-06 05:27:31

标签: jquery jquery-selectors

我有以下html:

<ul id="tree3" class="checkboxTree[1] checkboxTree">
 <li class="collapsed">
 <li class="collapsed">
 <li class="collapsed">
 <li class="collapsed">
 <li class="collapsed">
 <span>
 <input class="checktree" type="checkbox" value="19" fullname="MyName">

我试图捕捉复选框的更改事件。这很好用:

$(".checktree").change(function () {
    UpdateSelectedList();
});

但我需要对其进行范围调整,因为我在页面上有多个“.checktree”。我试过这样做:

$("#tree3 > .checktree").change(function () {
    UpdateSelectedList();
});

或者这个:

$("ul#tree3 > .checktree").change(function () {
    UpdateSelectedList();
});
但是他们似乎没有开火。有人可以说出上述选择器有什么问题吗?

1 个答案:

答案 0 :(得分:2)

选择器中的>元素表示子元素。由于.checktree不是#tree3的直接子项,因此无效。如果您想要完全匹配,请尝试#tree3 .checktree#tree3 > li > span > .checktree

jQuery Child Selector vs jQuery Descendent Selector