TypeScript:将JQuery子项作为数组访问

时间:2015-02-06 16:01:25

标签: javascript jquery typescript

我正在进行从JavaScript到TypeScript的移植练习,并遇到了以下问题。

在最初的JavaScript代码中我得到了:

var children = someJQueryElement.children('div');
var sortedChildren = children.sort(someSortFunction);

在TypeScript(1.4)中,所有jQuery方法都返回JQuery,这不是array,因此无法调用sort

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

作为一个想法,您是否尝试告诉TypeScript使用强制转换将其视为数组?

var children = someJQueryElement.children('div');
var sortedChildren = (<Array>children).sort(someSortFunction);

这似乎是一个相当繁琐的解决方案,但是,如果你必须在很多地方这样做。希望有人有更好的答案。

答案 1 :(得分:1)

您可以使用Array.slice.apply传入类似数组的对象并将其转换为正确的数组。

var children = [].slice.apply(someJQueryElement.children('div'));

如果您不使用jQuery但想要转换任何其他类似数组的对象(例如arguments),这也是一种有用的做法。

答案 2 :(得分:1)

您可以使用.get()

更改为普通数组
children.get().sort(someSortFunction);