我正在尝试按List<HtmlElement>
对Text
进行排序,将文本解析为num
this.onClick.listen((e){
this.parent.nextElementSibling.children.sort((Row a,Row b)=>
num.parse(a.children[this.visibleIndex].text).
compareTo(num.parse(b.children[this.visibleIndex].text)));
});
Row
是一个扩展HtmlElement
我得到了例外
Unsupported operation: Cannot sort element lists
是否有解决方法或我必须手动完成?
答案 0 :(得分:2)
我还没有尝试过,但我认为添加.toList()
时它应该可行。我认为这应该将其复制到可排序的标准列表中。
this.onClick.listen((e){
this.parent.nextElementSibling.children.toList().sort((Row a,Row b)=>
num.parse(a.children[this.visibleIndex].text).
compareTo(num.parse(b.children[this.visibleIndex].text)));
});
答案 1 :(得分:0)
import 'dart:html';
UListElement list;
ButtonInputElement boton;
main() {
list = querySelector('#list');
boton.onClick.listen( (e) => sort() );
}
void sort(){
list.children = list.children.toList()
..sort((LIElement x, LIElement y)=> y.text.length.compareTo(x.text.length) );
}