我有一个页面,其中有用户留下的评论,每个帖子都有自己的ID存储在隐藏的输入标签中,以便动态获取我需要知道所有帖子的ID的最新帖子并放置它们在字符串中,每个id都需要用逗号分隔。
例如......
HTML标记
<div class='msgPost'><div class='msgContainer'>
<input class='activityId' type='hidden' value='579'>
<span>
<div class='name'>Bob</div>nm
</span>
</div>
<div class='msgPost'><div class='msgContainer'>
<input class='activityId' type='hidden' value='578'>
<span>
<div class='name'>Tom</div>4
</span>
</div>
<div class='msgPost'><div class='msgContainer'>
<input class='activityId' type='hidden' value='577'>
<span>
<div class='name'>John</div>123
</span>
</div>
Jquery代码
function getLatestActivities(){
var ignoreMessagesColl = $("input.activityId").val();
$.ajax({
traditional: true,
dataType: "json",
type: "GET", url: "include/process.php",
data:{
getLatestActivity: "true",
toUser: "4",
ignoreMessages: ignoreMessagesColl
},
success: function(data){
$.each(data, function (i, elem) {
$('.commentMessage').after(elem.value);
});
}
});
}
目前变量 ignoreMessagesColl 只找到.activityid的第一个类实例,其值为“579”,但实际上我需要ignoreMessageColl来获得值“579,578,577”< / p>
答案 0 :(得分:13)
val
仅返回第一个值,请尝试map
加get
加join
:
var ignoreMessagesColl = $("input.activityId").map(function() {
return this.value;
}).get().join(",");
这是做什么的:
答案 1 :(得分:2)
var values = [];
$('.msgContainer input.activityId').each(function(){
values.push($(this).val());
});
console.log(values);
答案 2 :(得分:2)
你应该:
var arr = [], str;
$("input.activityId").each(function(){
arr.push(this.value);
});
str = arr.join(',');
答案 3 :(得分:1)
var ignoreMessagesCol = $("input.activityId").map(function() {
return $(this).val();
}).get().join(", ");
.map()将为选择器中的每个元素执行内部匿名函数,并返回一个jQuery对象集合。 .get()将使它成为一个数组。 .join()将使它成为逗号分隔的字符串