代码:
<script>
$(document).ready(function(){
for(id=1;id<=31;id++)
{
$("#"+id).click(function(){
console.log($('.state:checked').map(function() {
ids = this.value;
}).get().join(', '));
alert(ids);
});
}
});
</script>
<?php
$sql2 = "select * from statemaster";
$row1 = mysqli_query($link,$sql2);
while ($fetch1 = mysqli_fetch_array($row1))
{
?>
<input type="checkbox" name="statename" id="<?php echo $fetch1['stateid']; ?>" value="<?php echo $fetch1['stateid']; ?>" class="state"> <?php echo $fetch1['statename']; ?><br/>
<?php
}
?>
在这段代码中,我使用的是map函数,想要得到多个id状态,比如1,2,3,4但是当我点击任何一个状态时,它会一个接一个地警告id,就像检查第一个复选框一样警告1同样在第二个它给2但我想要1,2,3,4。那么,我该怎么做呢?请帮帮我。
谢谢
答案 0 :(得分:0)
你没有在map()
中返回任何内容。您只需在循环的每次迭代中将每个值分配给全局变量。因此,您提醒的是最后一个值
尝试
$("#" + id).click(function() {
var ids = $('.state:checked').map(function() {
return this.value;
}).get().join(', ');
console.log(ids);
alert(ids);
});
答案 1 :(得分:0)
我没有评论的声誉所以我必须写在这里。 看来你需要每个都不符合你的要求和 你可以参考这个 jQuery map vs. each检查你的要求。