我正在尝试使用此
获取点击链接中的文本 $(".ajax-append").click(function(event) {
$.get("includes/fight.php?name=test", function(html) {
console.log($(this).text());
console.log($(this));
// append the "ajax'd" data to the table body
$("table tbody").append(html);
// let the plugin know that we made a update
$("table").trigger("update");
// set sorting column and direction, this will sort on the first and third column
var sorting = [[2,1],[0,0]];
// sort on the first column
$("table").trigger("sorton",[sorting]);
});
return false;
});
标记看起来像这样
<div class="friend" id="friend6" style="padding 5px; height: 54px; margin-bottom: 10px;">
<div style="float: left; width: 54px;">
<img style="border:2px solid #E1E1E1;" src="6.jpg"/>
</div>
<div id="name6" style="float: left; padding-top: 20px; padding-left: 10px; font-size: 14px; width: 200px">
<a href="#" class="ajax-append" id="6">name 6</a>
</div>
</div>
<div class="friend" id="friend7" style="padding 5px; height: 54px; margin-bottom: 10px;">
<div style="float: left; width: 54px;">
<img style="border:2px solid #E1E1E1;" src="7.jpg"/>
</div>
<div id="name7" style="float: left; padding-top: 20px; padding-left: 10px; font-size: 14px; width: 200px">
<a href="#" class="ajax-append" id="7">name 7</a>
</div>
如果我使用特定的id,我可以在anchor标签中获取文本,但我正在尝试使用$(this)来实现此目的,并且警报消息始终未定义。
任何人都可以指出出了什么问题吗?或者想一个更好的方法来做到这一点?
感谢。
答案 0 :(得分:4)
试试这个:
$(".ajax-append").click(function(event) {
var element=this;
$.get("includes/fight.php?name=test", function(html) {
console.log($(element).text());
console.log($(element));
// append the "ajax'd" data to the table body
$("table tbody").append(html);
// let the plugin know that we made a update
$("table").trigger("update");
// set sorting column and direction, this will sort on the first and third column
var sorting = [[2,1],[0,0]];
// sort on the first column
$("table").trigger("sorton",[sorting]);
});
return false;
});
答案 1 :(得分:0)
这是因为你在ajax回调中使用了this
,它不再引用被点击的元素。
答案 2 :(得分:0)
在代码的上下文中,$(this)是一个AJAX请求。
最简单的方法是在AJAX调用之前设置变量,并在$ get中使用它。
答案 3 :(得分:0)
$(".ajax-append").each(function(){
$(this).click(function(event) {
$.get("includes/fight.php?name=test", function(html) {
console.log($(this).text());
console.log($(this));
// append the "ajax'd" data to the table body
$("table tbody").append(html);
// let the plugin know that we made a update
$("table").trigger("update");
// set sorting column and direction, this will sort on the first and third column
var sorting = [[2,1],[0,0]];
// sort on the first column
$("table").trigger("sorton",[sorting]);
});
return false;
}
});
答案 4 :(得分:0)
所以我相信 this.responseText 会有效。看看这个