Py学习  »  Jquery

jquery click函数使用元素作为变量

Helios • 4 年前 • 789 次点击  

我正在尝试创建一个脚本,该脚本将使用名为“CustomClass”的类访问任何单击项的内部文本。注意,这只针对一个元素。

问题是,单击的单个元素似乎根本没有被传递。附加的正则表达式将空格(如果有)替换为下划线。

我尝试过以下方法,但没有按预期工作:

// (1)
$('a.customclass').on("click", function() {
  var inner = $(this).innerHTML.replace(/ /g, "_");
});

// (2)
$('a.customclass').on("click", function(e) {
  var inner = $(e.target).innerHTML.replace(/ /g, "_");
});

// (3)
$('a.customclass').click(function(e) {
  var inner = $(e.target).innerHTML.replace(/ /g, "_");
});

// (4)
$('a.customclass').click(function() {
  var inner = $(this).innerHTML.replace(/ /g, "_");
});

在每种情况下,控制台中都会出现以下错误:

无法读取未定义的属性“replace”。

有人能看到这个问题吗?谢谢

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38071
 
789 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Rory McCrossan
Reply   •   1 楼
Rory McCrossan    4 年前

问题是因为jquery对象没有 innerHTML 属性。

要实现所需的,请使用提供的元素对象 this 直接:

$('a.customclass').on("click", function() {
  var inner = this.innerHTML.replace(/ /g, "_");
  console.log(inner);
});

或者,使用jquery html() 方法:

$('a.customclass').on("click", function() {
  var inner = $(this).html.replace(/ /g, "_");
  console.log(inner);
});

我还建议您快速阅读 jQuery documentation ,因为即使快速浏览方法名称,您也可以很好地了解它们的用途和可能的用途。