尝试从 js this 关键字中提取字符串
trying to extract a string from a js this keyword
我正在尝试在加载链接之前单击链接后执行javascript,使用以下代码:
$('body').on("click", 'a', function (evt) {
evt.preventDefault();
console.log(this);
$('.content').addClass('hide');
if (this.search("AV") > 0) {
$('#AVheader').addClass('fullwidth');
}
setTimeout(function () {
window.open(this, "_self");
}, 500);
});
我的错误是:
this.search
不是函数和
window.open(this, "_self");
不起作用
想把问题放在那里,因为我找不到一个简单的解释,我可能会花半天的时间试图弄清楚它。
当您在事件处理程序中时,this
指向单击的链接。元素没有search
方法。可能您正在尝试在链接中的某处搜索字符串,也许是内容。
$('body').on("click", 'a', function (evt) {
evt.preventDefault();
console.log(this);
$('.content').addClass('hide');
if (this.innerHTML.search("AV") > 0) {
$('#AVheader').addClass('fullwidth');
}
setTimeout(function () {
window.open(this.href, "_self");
}.bind(this), 500);
});
超时
函数中的this
不会引用您的锚元素,而是引用全局window
对象。您需要保存对该元素的引用,然后在超时回调中使用该引用
$('body').on("click", 'a', function (evt) {
evt.preventDefault();
//save the "this" reference
var that = this;
$('.content').addClass('hide');
if (this.search.search("AV") > 0) {
$('#AVheader').addClass('fullwidth');
}
setTimeout(function () {
window.open(that.search, "_self");
}, 500);
});
此外.search
锚元素上的属性不是一个函数,而是一个字符串,你必须执行this.search.search("AV")
或this.href.search("AV")
,具体取决于您实际尝试搜索的内容
相关文章:
- 使用gulp-angular gettext从JS文件中提取字符串不起作用
- Javascript:如何通过Regexp从属性中提取字符串
- 使用Node/Javascript提取字符串中的所有占位符
- 需要从随机大小的字符串中提取字符串
- 用unicode字符提取字符串中的单词
- 使用java脚本提取字符串
- JavaScript:如何提取字符串中的复杂内容
- 如何删除“;NULL”;使用Javascript从sails.js中的JSON对象中提取字符串
- 当前面的数字或前面字符的组合未知时提取字符串
- 如何根据 javascript 中的两个字符比较从另一个字符串中提取字符串
- 从两边提取字符串和相等数量的字符
- 如何在从 javascript 中的 json 对象中提取字符串时保留转义序列.(字符串实际上是正则表达式模式)
- 使用 javascript 从脚本标记中提取字符串
- 如何根据某些正则表达式模式提取字符串的“部分”
- 检查是否为数字,如果是字母,则在javascript中提取字符串的一部分
- 介绍JS学生使用isNaN(与其他语句结合使用)提取字符串
- 正则表达式后视以提取字符串
- 从另一个url或字符串中提取字符串
- 使用Javascript提取字符串中的数字
- 在javascript中提取字符串中的数字