我正在尝试创建一个脚本,该脚本将使用一个名为"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, "_");
});在任何情况下,控制台中都会出现以下错误:
无法读取未定义的属性“替换”。
有人能看到这个问题吗?谢谢
发布于 2019-08-17 18:05:27
问题在于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文档进行快速阅读,因为只要快速浏览一下方法名称,就可以很好地了解它们的功能以及可能实现的功能。
https://stackoverflow.com/questions/57538732
复制相似问题