在Dart中查询HTML属性

时间:2013-06-27 20:38:50

标签: firefox dart

我有这种格式的HTML:

<form name="fruit_name">
  <input id="fruit-name" type="hidden" name="Banana">
</form>

我让Dart像这样查询水果名称:

var fruitName = query('#fruit-name').attributes.values.last;

这在Chrome和Safari中效果很好。但在Firefox中,属性以不同的顺序返回,因此name不再是最后一个。在不依赖浏览器的情况下获取我所追求的属性的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

attributes is a Map,所以这应该有效:

var fruitName = query('#fruit-name').attributes['name'];

答案 1 :(得分:1)

您可以使用:

var fruitName = query('input#fruit-name').name;

query的结果实际上是InputElement,您在简单的Element中拥有更多成员。

通过在#fruit-name前加input,您会告诉分析师query的结果是InputElement。没有它你会得到一个警告('Element'中没有这样的getter'名字'。


最后,从性能的角度来看,执行此操作的最佳方法是使用document.getElementById(id),因为getElementById is really faster than querySelector):

InputElement fruitNameElement = document.getElementById('fruit-name');
var fruitName = fruitNameElement.name;

此处,第一行允许输入fruitNameElement以阻止在调用fruitNameElement.name时发出警告。