2013-03-14 237 views
0

我有一个包含许多名为.comment_holder的div的页面,每个div都包含一个不同的ID号码,例如,在.load()中传递一个变量

<div class="comment_holder" id="123"></div> 
<div class="comment_holder" id="345"></div> 

我想ID传递到一个网页,其中我加载时执行操作时,其追加.comment_holder股利。这里就是我想:

$('.comment_holder').load('/pages/includes/wall.php', { 
    var wlid = $(this).attr("id"); 
    wl_id: wlid; 
}); 

,但我得到:SyntaxError: missing : after property id

我应该怎么做不同?

+0

你能不能验证'this'引用了什么对象? – Yoeri 2013-03-14 09:42:23

回答

3

data参数不是一个适当的对象字面量。 this也不在对象字面值范围内,因此遍历调用每个元素的加载函数的元素。使用传递给该函数的元素来检索id。

$('.comment_holder').each(function(index, elem){ 
    $(elem).load('/pages/includes/wall.php', { 
     wl_id: $(elem).attr("id") 
    }); 
}); 

类似的例子:http://jsfiddle.net/qQ4Np/1/

-1

你不能有一个对象内部VAR语句字面那样。所以刚ID分配给对象属性

$('.comment_holder').load('/pages/includes/wall.php', { 
    wl_id: $("comment_holder").attr("id") 
}); 

但这是行不通的,如果你有多个元素白衣.comment_holder类。所以我建议使用Kevin的方法并循环收集。

+0

这并不能解决问题,'this'不会引用选定的元素。 – undefined 2013-03-14 09:48:04

+0

是真的。更新 – VeXii 2013-03-14 09:49:11

0
$('.clicker').click(function(){ 
var myId = $(this).attr("id"); 

$('.comment_holder').load('/pages/includes/wall.php', { 
    myId: myId; 
});}); 

而且wall.php:

$myId = $_POST['myId']; 
0

或者,如果要加载dynamiccaly在页面加载数据,你必须这样做,在环$。每()

$('.comment_holder').each(function(){ 
    var myId = $(this).attr("id"); 
    $(this).load('/pages/includes/wall.php', { 
     myId: myId; 
    }); 
});