如何在角度2中获取元素属性的值?

时间:2017-06-08 14:51:25

标签: angular ionic2 angular2-directives

我有一个HTML span,它有两个超链接。



new_column = numpy.array(gb_weights , dtype=[('weight', 'f8')])
root_numpy.array2root(new_column, 'MC_output.root' , 'TrainTree')

new_column_test = numpy.array(gb_weights_test , dtype=[('weight', 'f8')])
root_numpy.array2root(new_column_test, 'MC_output.root', 'TestTree')



 我创建了一个角度指令。其中读取DOM元素和href链接。但它只读取第一个href,我如何从上面的跨度读取第二个href,以便我可以解析它。



<span><a href="http://appcarvers.cloudaccess.host/index.php?Itemid=207" alt="Shirley Setia">Shirley Setia</a><i class="fa fa-caret-right"></i>
<a href="http://appcarvers.cloudaccess.host/index.php?Itemid=210" alt="Harry">Harry</a>
</span>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:4)

您在模板上的哪个位置调用指令?它是直接在<span>元素上还是在更高级别?

querySelector API仅选择给定选择器的html节点的第一个实例,因此,如果您直接在<span>上应用指令,那么您的当前应该没有问题实施原因基本上<a>内只有一个<span>标记。

如果指令托管多个span标记,例如:

<div stream-link>
  <span><a href="...">Link 1</a></span>
  <span><a href="...">Link 2</a></span>
  <span><a href="...">Link 3</a></span>
</div>

您应该使用querySelectorAll代替,这将选择嵌套在指令元素中的所有节点。

<强>更新

this.element.nativeElement.querySelectorAll('a')的输出是NodeList,它内置了forEach数组方法。只需遍历列表并获取每个元素的href属性。

let urls = [];
let nodes = this.element.nativeElement.querySelectorAll('a');
nodes.forEach(node => urls.push(node.href));