我知道如何劫持jQuery中的链接,也知道如何找到元素的父级,但是我似乎无法将两者结合起来.我有多个div,每个div都包含一个链接.我想劫持链接并更新父div的内容.
<div class="container-1">
<a href="/foo.html">Add content</a>
</div>
<div class="container-2">
<a href="/bar.html">Add content</a>
</div>
这是我对jQuery的了解:
$(function() {
$(".pager A").live("click",
function() {
$.get($(this).attr("href"),
function(response) {
$(this).parent().attr("id").replaceWith(response); // This is wrong
});
return false;
});
});
带有“这是错误的”注释的行没有我想要的$(this).它似乎包含前一个表达式的结果,而不是我选择的元素(“ .pager A”).
我怎样才能做到这一点?
奖励问题:Visual Studio抱怨“ .get是保留字,不应用作标识符”.到底是什么问题?
编辑:对不起,我的意思是< div id =“ container-1”> ;,而不是< div class =“ container-1”>.第2分区的同上.
解决方法:
尝试保存对当前执行上下文的引用,该引用指向锚点,以供稍后在回调中引用:
$(function() {
$(".pager A").live("click",
function() {
var el = this;
$.get($(el).attr("href"),
function(response) {
$(el).parent().html( response ); // is this what you want? .attr('id') would return a string and you can't call jQuery methods on a string.
});
return false;
});
});