我有这种格式的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
不再是最后一个。在不依赖浏览器的情况下获取我所追求的属性的最佳方法是什么?
答案 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
时发出警告。