试图用打字稿在 DOM 上找到一个元素
trying to find an Element on DOM with typescript
我完全是打字稿的新手。我只是想找到一个带有选择器的元素。无论我尝试 findElement() 方法总是变成未定义的。我哪里做错了?
非常感谢任何帮助!
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));
}
}
为了定义 "this",您必须将 findElement 声明为某些 class 的实例方法。像这样:
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));
}
}
}
否则你可以将其作为静态方法:
class UI
{
public static findElement(selector: any)
{
if (angular.isDefined(this.$window.jQuery)) {
return this.$document.find(selector);
} else {
return angular.element(this.$document.querySelector(selector));
}
}
}
var cdnBasePath: any = UI.findElement('meta[name="cdnBasePath"]').attr('content');
或者直接删除 'this' 并将其作为全局函数(我不推荐这样做)
function findElement(selector: any)
{
if (angular.isDefined(this.$window.jQuery)) {
return this.$document.find(selector);
} else {
return angular.element(this.$document.querySelector(selector));
}
}
var cdnBasePath: any = findElement('meta[name="cdnBasePath"]').attr('content');
希望对您有所帮助。
我完全是打字稿的新手。我只是想找到一个带有选择器的元素。无论我尝试 findElement() 方法总是变成未定义的。我哪里做错了? 非常感谢任何帮助!
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));
}
}
为了定义 "this",您必须将 findElement 声明为某些 class 的实例方法。像这样:
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));
}
}
}
否则你可以将其作为静态方法:
class UI
{
public static findElement(selector: any)
{
if (angular.isDefined(this.$window.jQuery)) {
return this.$document.find(selector);
} else {
return angular.element(this.$document.querySelector(selector));
}
}
}
var cdnBasePath: any = UI.findElement('meta[name="cdnBasePath"]').attr('content');
或者直接删除 'this' 并将其作为全局函数(我不推荐这样做)
function findElement(selector: any)
{
if (angular.isDefined(this.$window.jQuery)) {
return this.$document.find(selector);
} else {
return angular.element(this.$document.querySelector(selector));
}
}
var cdnBasePath: any = findElement('meta[name="cdnBasePath"]').attr('content');
希望对您有所帮助。