我在页面上有很多表格。内容由php脚本生成,给出一个关键字(kuid - 从数据库加载)并使用jQuery加载。
在页面上,它们看起来像这样:
<table class="className" kuid="someInteger"></table>
这是我提出的jQuery:
jQuery('.className').each(function(){
var kuid = jQuery(this).attr('kuid');
jQuery.post('data.php',{kuid: kuid},function(data){
jQuery(this).html(data);
});
});
和data.php:
$kuid = $_POST['kuid'];
echo 'Content for this ID: '.$kuid.'!';
然而它会抛出'Uncaught TypeError'。显然我不允许使用$(this)
关键字,但我不明白为什么。
此代码有点作用:
var kuid = jQuery('.className').attr("kuid");
jQuery.post(data.php',{kuid: kuid},function(data){
jQuery('.className').html(data);
});
但它根据“kuid”的第一次出现给每个表提供相同的内容。
答案 0 :(得分:1)
jQuery('.className').each(function(){
var kuid = jQuery(this).attr('kuid');
jQuery.post('data.php',{kuid: kuid},$.proxy(function(data){
jQuery(this).html(data);
}, this));
});
答案 1 :(得分:0)
在进入$(this)
之前,只需将post
分配给变量:
jQuery('.className').each(function(){
var kuid = jQuery(this).attr('kuid'),
that = jQuery(this);
jQuery.post('data.php',{kuid: kuid},function(data){
that.html(data);
});
});