【发布时间】:2018-07-24 00:41:22
【问题描述】:
这是官方的 ngxTypeahead 插件
http://embed.plnkr.co/gV6kMSRlogjBKnh3JHU3/
在这里,当我们按下 keyUp 或 keyDown 时,我需要在类似于 firefox 搜索框 typeahead 的输入框中显示突出显示(蓝色)的 typeahead 选项的 innerHTML。 我该怎么做?
所以我在执行上述操作时遇到了这个问题
使用 jquery 我可以像这样获取我的目标元素
var target= $(this).siblings().find("li.active");
现在我变成这样了
这是我的 onKeyUp 函数
onKeyUp($event.key){
if( $event.keyCode== '38'|| $event.keyCode == '40'){
var target= $event.srcElement.nextElementSibling.children[4].children[0].innerText;
}
}
所以如果我将调试器保留在 Onkey($event.key) 函数中
然后输入$event.srcElement.nextElementSibling.children
0:div.typeahead-backdrop
1:button.list-group-item
2:button.list-group-item
3:button.list-group-item
4:button.list-group-item.active
5:button.list-group-item
我就像上面一样。 所以我需要获取活动按钮innerText。在按钮内部它有一个跨度,我需要它的 innerHTML。 是否有任何特定的简单方法可以使用 angular2 访问上述目标?
【问题讨论】:
-
您能否提供一些有关您尝试实现的内容?您是否在模板中设置该类?为什么需要访问该元素?
-
你的目标来自哪里?输入表格 ?如果是,您可以使用 (keyUp) 事件处理程序获取值
-
@jonrsharpe 我按问题编辑
-
@andrea06590 我编辑了我的问题,您现在可以查看吗?
-
但是为什么有必要这样做呢?什么是设置活跃班?为什么需要访问元素;你从它的内容中得到了什么?通常,通过 $event 访问 DOM 是一种反模式:angular.io/guide/user-input#passing-event-is-a-dubious-practice。
标签: jquery angular angular2-template angular2-directives