Javascript JQuery:has(),我只需要选择子项
我正在使用JQuery处理一些层次化数据,并试图添加某种类型的视觉指示,以指示选择了树中的哪些元素。下面是我正在生成的html示例(我们正在处理): 我遇到的问题是,由于所有区域都由嵌套的ul组成,因此选中任何区域中的复选框也会添加。选择树中较高的任何li。。。因此,单击Cairo的复选框将.selected类添加到埃及和非洲 有人知道我将如何只捕捉李的孩子,他们有一个可见的复选框,作为一个直接的孩子 以下是我的整个js文件,以防它提供洞察:Javascript JQuery:has(),我只需要选择子项,javascript,jquery,jquery-selectors,hierarchical-data,Javascript,Jquery,Jquery Selectors,Hierarchical Data,我正在使用JQuery处理一些层次化数据,并试图添加某种类型的视觉指示,以指示选择了树中的哪些元素。下面是我正在生成的html示例(我们正在处理): 我遇到的问题是,由于所有区域都由嵌套的ul组成,因此选中任何区域中的复选框也会添加。选择树中较高的任何li。。。因此,单击Cairo的复选框将.selected类添加到埃及和非洲 有人知道我将如何只捕捉李的孩子,他们有一个可见的复选框,作为一个直接的孩子 以下是我的整个js文件,以防它提供洞察: $(document).ready(function
$(document).ready(function() {
$(".selectedcheck").hide();
showSelected = function(){
$("#miller li").removeClass("chosen");
$("#miller li:has(input:checkbox:checked:visible)").addClass('chosen');
};
$("#miller a").click(function(event) {
event.preventDefault();
$("#miller li").removeClass("selected");
$(this).parent().addClass("selected");
data = $(this).data();
$("#addChild").attr("href", "addChild.php?parentid=" + data.self).html("Add item under " + data.nodename);
$("#addSibling").attr("href", "addChild.php?parentid=" + data.parent).html("Add item next to " + data.nodename);
$("#editRegion").attr("href", "editRegion.php?id=" + data.self).html("Edit " + data.nodename);
$("#deleteRegion").attr("href", "deleteRegion.php?id=" + data.self).html("Delete " + data.nodename);
$("#addResort").attr("href", "addResort.php?regionid=" + data.self).html("Add resort to " + data.nodename);
$("#miller ul ul").hide();
$(this).parents("#miller ul").show();
$(this).siblings("#miller ul").show();
showSelected();
});
$("#miller .millermultiselect").click(function(event) {
$("#miller li").removeClass("selected");
$(this).parent().addClass("selected");
$("#miller ul ul").hide();
$(this).parents("#miller ul").show();
if($(this).is(':checked')) {
$(this).parent().find(".millermultiselect").not(this).hide();
$(this).parent().find(".millermultiselect").not(this).removeAttr("checked");
$(this).parent().find(".selectedcheck").show();
} else {
$(this).parent().find(".millermultiselect").not(this).show();
$(this).parent().find(".selectedcheck").hide();
}
$(this).siblings(".selectedcheck").hide();
$(this).siblings("#miller ul").show();
showSelected();
});
});
您可以使用直接子体选择器,然后获取其父项:
$("#miller li > input:checkbox:checked:visible").parent().addClass("chosen");
您可以使用直接子体选择器,然后获取其父项:
$("#miller li > input:checkbox:checked:visible").parent().addClass("chosen");
我将如何去捕捉李的,有一个可见的复选框,作为一个直接的孩子
扭转这个问题怎么样
$('input:checkbox').is(':visible').is(':checked').parent('li')
我将如何去捕捉李的,有一个可见的复选框,作为一个直接的孩子
扭转这个问题怎么样
$('input:checkbox').is(':visible').is(':checked').parent('li')
这正是我想要的。我很确定我的大脑今天不工作了。这正是我想要的。我很确定我的大脑今天不工作了。