按类名定位父元素

时间:2015-07-27 15:38:47

标签: angularjs angularjs-directive

我正在使用角色。

在表格单元格中,我渲染了html的变量结构,因此每个单元格中的DOM结构不是常量。

在每个单元格中,我隐藏了内容溢出(所有内容都显示在单元格的悬停中)。输入字段位于每个单元格内,作为内容的一部分。

我想要实现的是当" tab"按下键,从一个单元格的输入到下一个单元格的输入,刚刚获得焦点的输入的父级" td" /单元格显示溢出(扩展)。

每个" td" element有一个指令:

myApp.directive('input', function()
{
    return {
        restrict: 'E',
        link: function(scope, element, attrs)
        {

            element.bind('focus', function(){
                console.log(element.parent()[0].style.overflow="visible");
                console.log(element.parent()[0].style.maxHeight="100%");

            });
            element.bind('blur', function(){
                console.log(element.parent()[0].style.overflow="hidden");
                console.log(element.parent()[0].style.maxHeight="30px");

            });
        }
    }
});

该指令并没有按照我的意愿行事,因为目标的父元素并非总是正确的(不是总是" td")。

如果我将类名应用于每个" td"我不能做像???:

这样的事情
element.parent('.className'));

当输入是textarea时,它既不起作用。

http://jsfiddle.net/5m1a2Ljs/48/

1 个答案:

答案 0 :(得分:0)

如果你想通过jQuery使用选择器获得一个祖先(不仅是直接父元素)元素,你可以做

element.closest(SELECTOR)