社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Jquery

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

Helios • 5 年前 • 1578 次点击  

我正在尝试创建一个脚本,该脚本将使用名为“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
 
1578 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Rory McCrossan
Reply   •   1 楼
Rory McCrossan    5 年前

问题是因为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 ,因为即使快速浏览方法名称,您也可以很好地了解它们的用途和可能的用途。