我正在尝试创建一个脚本,当你点击一个锚点时,一个$ .get函数会得到锚点的href,然后href将被删除,但我无法从de get里面编辑关于锚点的任何内容元件。例如:
// make anchor disappear for example (doesn't work)
$('.belovedanchor').click(function(e) {
$.get($(this).attr('href')).done(function() {
$(this).hide();
});
});
// make an anchor disappear using a function (doesn't work too)
$('.belovedanchor').click(function(e) {
function do() { $(this).hide(); };
$.get($(this).attr('href')).done(function() {
do();
});
});
我不明白为什么$(this)更改为使用$ .get函数而不是.click事件。
你们会怎么做?
答案 0 :(得分:1)
你有几个问题。 修改:只有一个问题 - 我现在从您的评论中看到belovedanchor
不是代码中的实际选择器。
首先,click事件处理程序的jQuery选择器很可能不正确。将$('belovedanchor')
更改为$('.belovedanchor')
或$('#belovedanchor')
,具体取决于锚点是否可分别通过类别或元素ID识别。
其次,this
回调函数中的do
未引用锚点。在JavaScript中,范围是在函数级别设置的,因此无论何时声明新函数,this
都将引用该新范围。
请改为:
$('belovedanchor').click(function(e) {
var anchor = $(this);
function do() { anchor.hide(); };
$.get($(this).attr('href')).done(function() {
do();
});
});
简化为:
$('belovedanchor').click(function(e) {
var anchor = $(this);
$.get(anchor.attr('href')).done(function() {
anchor.hide();
});
});
答案 1 :(得分:0)
这可能会正常工作
$('.belovedanchor').click(function() {
var selectedancor = $(this);
var myurl = $(this).attr('href');
$.get(myurl, function() {
selectedanchor.hide();
});
});