Javascript 在树状视图中使用或不使用parentsUntil触发click事件以搜索节点
我有一个具有以下结构的树视图,我想展开树节点以按id选择特定节点 我已经到了可以访问parentUntil的阶段,但我不知道如何使用它触发点击事件或更改父母兄弟姐妹孩子的类 如何使用或不使用parentsUtil函数在具有类col的div上触发click事件 这是小提琴:www.jsfiddle.net/m3hecxyr 这就是我正在尝试的Javascript 在树状视图中使用或不使用parentsUntil触发click事件以搜索节点,javascript,jquery,Javascript,Jquery,我有一个具有以下结构的树视图,我想展开树节点以按id选择特定节点 我已经到了可以访问parentUntil的阶段,但我不知道如何使用它触发点击事件或更改父母兄弟姐妹孩子的类 如何使用或不使用parentsUtil函数在具有类col的div上触发click事件 这是小提琴:www.jsfiddle.net/m3hecxyr 这就是我正在尝试的 $("a[href='#id=4'").parentsUntil($("#list > ul")) // what's next ? 结构 如何使用
$("a[href='#id=4'").parentsUntil($("#list > ul")) // what's next ?
结构
如何使用或不使用parentsUtil函数在具有类col的div上触发click事件
如果要单击与当前子树相关的具有col类的div元素,则需要转到具有此类div的最近元素,并从中找到相应的div:
$("a[href='#id=4']").closest($("ul:has(div.col)")).find ('div.col').get(0).click();
您的切换功能未被描述,因此我建议将其实现为:
function toggle(ele, evt) {
evt.stopPropagation();
ele.classList.toggle('col');
ele.classList.toggle('exp');
}
对于内联调用:
toggle(this, event);
片段:
功能切换{
evt=evt | | window.event;
evt.stopPropagation;
ele.classList.toggle'col';
ele.classList.toggle'exp';
}
$function{
$a[href='id=4']
.最接近$ul:hasdiv.col
。查找“div.col”。获取0.click;
};
上校{
边框:3倍纯绿;
}
.exp{
边框:3倍纯红;
}
如何使用或不使用parentsUtil函数在具有类col的div上触发click事件
如果要单击与当前子树相关的具有col类的div元素,则需要转到具有此类div的最近元素,并从中找到相应的div:
$("a[href='#id=4']").closest($("ul:has(div.col)")).find ('div.col').get(0).click();
您的切换功能未被描述,因此我建议将其实现为:
function toggle(ele, evt) {
evt.stopPropagation();
ele.classList.toggle('col');
ele.classList.toggle('exp');
}
对于内联调用:
toggle(this, event);
片段:
功能切换{
evt=evt | | window.event;
evt.stopPropagation;
ele.classList.toggle'col';
ele.classList.toggle'exp';
}
$function{
$a[href='id=4']
.最接近$ul:hasdiv.col
。查找“div.col”。获取0.click;
};
上校{
边框:3倍纯绿;
}
.exp{
边框:3倍纯红;
}
能够使用下面的代码让它自己工作
$("a[href='#id=4'").parentsUntil($("#list > ul" )).each(function() {
if($(this).is("li"))
$($(this).find(".exp").get(0)).trigger("click")
});
我不确定是否有更好的解决办法,但这目前正在发挥作用。我可以自己使用下面的代码
$("a[href='#id=4'").parentsUntil($("#list > ul" )).each(function() {
if($(this).is("li"))
$($(this).find(".exp").get(0)).trigger("click")
});
我不确定是否有更好的解决办法,但这项工作目前正在进行。您想要吗?只要$'list>ul'。css也可以。@Tushar我不想添加边框,我想更改css类或触发它们上的单击事件,我改进了我的问题,现在它有意义了吗?你想吗?只要$'list>ul'。css也可以。@Tushar我不想添加边框,我想更改css类或触发它们上的单击事件,我改进了我的问题,现在有意义了吗?非常感谢,我尝试了你的示例,但没有帮助,所以我想出了自己的答案非常感谢,我试过你的例子,但没用,所以我想出了自己的答案