我正在用AngularJS编写一个指令,该指令被限制为一个属性,它试图操纵元素的一些子元素。
到目前为止,我以这种方式选择了我想要使用的元素:
var subMenus = angular.element(element.children()[1]);
这显然很糟糕,因为我很容易找到其他意想不到的元素。
我也尝试过选择具有特定指令的元素:
var subMenus = angular.element('[imp-drop-sub]');
这导致选择我想要的元素加上具有指令但不是我想要使用的元素的子元素的其他元素。
是否有一些选择器允许我同时执行这两个操作,选择具有特定指令(imp-drop-menu)但仅来自子元素的那些?
使用jQuery是可能的,但操作必须从angular指令完成。
答案 0 :(得分:1)
不幸的角度jqlite(https://docs.angularjs.org/api/ng/function/angular.element)不支持带选择器的children()。而且发现非常有限。
jQuery可以,所以这将是一个解决方案:
jQuery(element).children('[imp-drop-sub]');
另一种方法是先调用children()。 然后迭代/ foreach整个集合并检查指令是否存在