当前位置: 首页 > 知识库问答 >
问题:

如何在Angular 5中遍历dom

董建茗
2023-03-14

我在我的一个项目中使用Angular 5。在我的一个组件中,我有一个HTML表,其中有输入字段。

现在我需要这个输入字段的键盘快捷键,例如,如果用户按Enter键,下一个输入字段应该被聚焦。同样地,如果用户按backspace键,则应聚焦前一个字段。

这种类型的操作我以前在jQuery中使用$(This).next('input').focus();$(This).prev('input').focus();进行过。

现在我如何在Angular 5中做同样的事情呢?

另外,在某些情况下,我在这个嵌套表中有嵌套表和输入字段。我需要在输入字段上使用相同的行为(仅仅.next().prev()是不够的,我们需要从DOM中找到下一个输入字段)。

编辑

到目前为止我所尝试的

<input id="first_element_{{i}}" type="text" class="form-control" #particular [required]="transaction.amount" [(ngModel)]="transaction.selectedAccount.account" (keyup)="searchAccount($event?.target?.value);" (focus)="onAccountFocus(transaction.type === 'A' ? amountField1 : amountField2, transaction.type, i);" (blur)="onAccountBlur($event);" [ngClass]="{'focus': isSelectedRow && selectedIdx === i}" (keydown)="detectKey($event)" (keydown.Tab)="validateAccount(transaction, $event, i)"> 

我已经添加了(blur)(keydown)(keydown.tab)来实现这一点,但最后我无法从DOM中找到确切的nextprev元素。

共有1个答案

齐高寒
2023-03-14

您可以使用'@viewchildred('name')'输入:QueryList并将'#name'放在可聚焦的输入上。这将为您提供一个ElementRef witch可以聚焦的查询列表(element.nativeElement.focus())。对我来说,您应该使用像'@hostlistener('window:keyup‘,['$event'])'这样的hostlisting来触发每个keys事件,这样您就可以在里面获得输入列表,即事件触发器所在的输入($event)。它只是仍然把可聚焦的逻辑放在里面!希望对你有帮助!

 类似资料:
  • 问题内容: 我有一个Map如下所示的bean: 这ftqSet适合以下数据结构: 在我的测试JSP文件中,我一直在尝试使用来访问数据 : 但是它没有输出${f.feedId}。为什么会这样呢?我将如何访问该结构的各个元素,以便创建一个漂亮的表? 问题答案: 的每次迭代中给出了一个实例,它反过来又和getValue()方法。这与在普通Java中进行操作类似。 例如 在的情况下, 的回报, ,所以你需

  • 问题内容: 我在Linux上用bash编写脚本,需要遍历给定目录中的所有子目录名称。如何遍历这些目录(并跳过常规文件)? 例如: 给定目录是 它具有以下子目录: 我想检索A,B,C。 问题答案: 简短说明: 查找文件(很明显) 是当前目录,它位于is之后(恕我直言,它比直接包含在命令中更为灵活。如果要在此文件夹中执行更多操作,则只有一个位置可以更改,)。 并确保仅在当前目录中查找,并且不将自身包含

  • 问题内容: 我有以下代码,它使用来遍历中的元素。 我如何使用like中的新功能或执行相同任务。提前致谢 问题答案: 这等效于Java 8流API中的代码。不是100%等效,但是您可以了解主要思想。

  • 问题内容: 我有一个带有一些十六进制数字的文本文件,我正在尝试将其转换为十进制。我可以成功转换它,但似乎在循环存在之前它会读取一些不需要的字符,因此我遇到了以下错误。 我的代码如下 每个十六进制数字都在新行中输入 问题答案: 追溯表明文件末尾可能有一个空行。您可以这样解决: 另一方面,最好使用代替。不要忘记关闭文件,或者更好地使用该文件来关闭它们:

  • 问题内容: 如何在JSP中循环通过? 问题答案: 就像使用普通Java代码一样。 但是,(JSP文件中的原始Java代码,那些东西)被认为是不明智的做法。我建议安装JSTL(只需将JAR文件放入其中,并在JSP顶部声明所需的taglib)。它有一可以迭代的标签Map。每次迭代都会给你带来反过来,而反过来又具有和方法。 这是一个基本示例: 因此,你的特定问题可以通过以下方式解决: 你需要将Servl

  • 问题内容: 我想遍历,对于所有具有特定值的键,我希望将它们添加到new 。我怎样才能做到这一点? 问题答案: 假设类型TreeMap : (键和值类型当然可以是任何类)