当我在tr
日历上点击按钮时,我试图找到父datepicker
元素。由于我不想在我的Angular应用程序中以脚本标记(编辑)的形式使用jQuery ,并且这不可能使用严格的CSS,我在下面创建了指令。 elm.find
能够正确找到并更改按钮的CSS,因此我知道我找到了我正在寻找的元素,但是现在我需要向上移动DOM。
我已经习惯了jQuery语法,这种语法不起作用,而且我还没有能够在互联网上找到任何有效的东西。有人可以用语法帮助我吗?
/* Linker for the directive */
var linker = function (scope, elm, attrs) {
elm.on('click', function() {
elm.find('table tbody tr button.active').parent('td').css('background-color', 'red');
});
};
修改
这是一个需要放在uib-datepicker
元素(Angular UI Bootstrap)上的指令,以便更改整行的背景颜色。该框架没有提供此功能,并且在页面加载之前不会生成HTML。
我需要将指令附加到下面的元素,找到所选项目,然后重新启动DOM以查找父tr
。
<uib-datepicker highlightselectedrow class="well well-sm" ></uib-datepicker>
答案 0 :(得分:4)
.parent
仅与上限element
完全相同。我说要使用.closest
,所以它会在父级中进行搜索,直到获得td
elm.find('table tbody tr button.active')
.closest('td').css('background-color', 'red');
答案 1 :(得分:0)
采用比psuedo jQuery更有棱角的方法呢?这基于ngStyle Angular doc:
<div ng-style="myStyle">Test</div>
<div ng-click="myStyle={'background-color':'red'}">Click Me</div>
然后,您可以将click
事件放在您想要的任何元素上(td)。 ng-style
可以移动到您想要的效果(tr)。