试图在带有打字稿的DOM上找到一个元素

时间:2016-02-01 14:49:09

标签: angularjs typescript selector element

我是打字稿的新手。我只是想找一个带选择器的元素。无论我试过findElement()方法总是转为undefined。我在哪里做错了? 任何帮助非常感谢!

var cdnBasePath: any = this.findElement('meta[name="cdnBasePath"]').attr('content');

public findElement(selector: any) {

            if (angular.isDefined(this.$window.jQuery)) {
                return this.$document.find(selector);
            } else {
                return angular.element(this.$document.querySelector(selector));
            }

        }

1 个答案:

答案 0 :(得分:1)

为了定义“this”,你必须将findElement声明为某个类的实例方法。像这样:

extends

否则你可以将它作为静态方法:

private static void displaySearch(String toSearch, Searcher searcher) {
    ...
    searcher.search(...);
    ...
}

或者只是删除'this'并将其作为全局函数(我不建议这样做)

class SomeClass
{
    public SomeMethod() 
    {
        var cdnBasePath: any = this.findElement('meta[name="cdnBasePath"]').attr('content');
    }

    public findElement(selector: any) 
    {
        if (angular.isDefined(this.$window.jQuery)) {
            return this.$document.find(selector);
        } else {
            return angular.element(this.$document.querySelector(selector));
        }
    }
}

希望这有帮助。