如何在Angular 4中使用onClick事件获取span值

22 浏览
0 Comments

如何在Angular 4中使用onClick事件获取span值

我正在一个Angular 4项目中工作,在这个项目中,我需要在点击图像时获取Span标签中的值。我参考了一些Stackoverflow的问题,但都不适用于我...这是我的HTML代码:\n

img1
img2
 iPhone


1500 $

\n这是我的.ts文件:\n

getProductName(Pname: string) {
this.http.get(`http://localhost:57036/api/data/CartCount/?ProductName=${Pname}`)
.subscribe(data => this.res = (data['ITEM_QTY']),
error => console.error(error));
}

\n当我点击图像时,我想获取Span标签中的值,并将其传递给API,但在我的情况下,我无法获取span的值。我对Angular4还很陌生,请指导我解决这个问题。

0
0 Comments

问题的原因是在点击事件中获取span元素的值时出现了错误。解决方法是在获取span元素的值之前,先将Pname转换为HTMLSpanElement对象。

在上述代码中,首先需要对click事件进行修改,添加一个Pname参数。然后在getProductName方法中,将Pname转换为HTMLSpanElement对象,然后再获取其innerHTML属性的值。

在调试过程中,可以看到在获取innerHTML属性时,返回的是"iPhone",但在将其赋值给spanContent变量后,spanContent变量的值却是undefined。需要进一步调试以确定问题的根本原因。

以上就是如何在Angular 4中使用onClick事件获取span值的问题的出现原因和解决方法。

0
0 Comments

问题的原因是在Angular 4中使用onClick事件获取span标签的值。解决方法是使用Angular的语法来处理事件,并且在点击事件的处理函数中获取span标签的值。

首先,需要给图片标签添加闭合斜杠。每个标签都应该有闭合标签。

其次,由于使用的是Angular,所以应该使用Angular的语法来处理事件。

第三,不能在图片标签上同时使用routeLink属性和click事件处理函数,否则会出现奇怪的行为。

下面是更新后的图片标签:


现在,可以获取到span标签的值,并且可以跳转到指定的路由。

以下是获取span标签值并进行路由跳转的代码:

getProductName() {
  const productName = this.Pname.nativelement.innerText;
  // 在这里进行你想要的操作,然后进行路由跳转:
  this.router.navigate(['/my-cart']);
}

记得导入所需的依赖项,并在构造函数中声明它们作为类成员。

import { Router } from '/router';
import { ViewChild, ElementRef } from '/core';
// ...
('Pname') Pname: ElementRef;
constructor(private router: Router) {}

需要注意的是,图片标签需要闭合,可以参考这个链接了解更多信息:stackoverflow.com/questions/23890716/…

它并没有禁止不闭合标签的使用,只是建议闭合标签是良好的编程习惯。感谢您提供的信息,我之前并不知道这一点!

你的代码没有显示这一点。你试过我说的方法吗?是否有效?

0
0 Comments

问题的出现原因是作者想通过点击图片来获取span标签的值,但是作者尝试了一种方法后输出的结果是"Undefined"。由于图片和span标签位于不同的div中,作者希望找到一种方法来将div包裹在span中。

解决方法是作者尝试了另一种方法,但是具体方法没有给出。

以下是整理后的

在Angular 4中,如果你想通过点击事件来获取span标签的值,你可以尝试以下方法:

首先,在HTML页面的标记中,你可以这样写:

img1 img2
iPhone 1500 $

然后,在组件中,你可以定义一个方法来获取span标签的值,方法如下:

getProductName(Pname: any) {
    console.log(Pname.textContent)
}

作者尝试了上述方法后,发现输出的结果是"Undefined"。这可能是因为图片和span标签位于不同的div中,所以作者试图找到一种方法来将div包裹在span中,但是具体方法没有给出。

希望以上内容对你有所帮助,谢谢!

0