Javascript 获取所有选中的复选框';数组中的对应值

Javascript 获取所有选中的复选框';数组中的对应值,javascript,jquery,arrays,concatenation,Javascript,Jquery,Arrays,Concatenation,请查看以下代码: $("#saveButton").click(function(){ $this = $("#tableData").find("input:checked").parent().parent(); tea = $this.find(".teaCls").text(); $.ajax({ type: "POST", url: "chkSelectedValues.php"

请查看以下代码:

   $("#saveButton").click(function(){

        $this = $("#tableData").find("input:checked").parent().parent();

        tea = $this.find(".teaCls").text();

        $.ajax({
            type: "POST",
            url: "chkSelectedValues.php",
            data: "tea=" + tea,
            success: function(msg){
                $("#theField").html(msg);
            }

        });       

    });
现在,如果选中多个复选框,
tea
flower
最终将连接所有这些字段中的
文本。如果选择了两个复选框,其中一个包含单词
some
,另一个包含单词
text
,那么最后
tea
变量将获得值:
sometext
。但是我希望
tea
是一个包含这些值的数组(在本例中是
some
text
),因为我需要在AJAX请求中传递它们,并且希望在
chkSelectedValues.php中轻松捕获它们

结构:

<table #tableData>
 <tr>
   <td .teaCls></td>
   <td> Checkbox here</td>
  </tr>
  <tr>
  .....

复选框在这里
.....
我该怎么做?提前感谢。

这应该可以:

var tea = $(':checked').map(function() {
    return this.value;
}).get();
演示

编辑更新以反映OP的澄清:

var tea = $(':checked').map(function() {
    return $(this).parent().siblings('.teaCls').text();
}).get();
这应该起作用:

var tea = $(':checked').map(function() {
    return this.value;
}).get();
演示

编辑更新以反映OP的澄清:

var tea = $(':checked').map(function() {
    return $(this).parent().siblings('.teaCls').text();
}).get();

嗯。解决了。。谢谢大家的帮助

var md = new Array();
$("input:checkbox").filter(":checked").parent().parent().each(function(){

   md.push($(this).find(".teaCls").text());

});

现在
md
是我的英雄

是的。解决了。。谢谢大家的帮助

var md = new Array();
$("input:checkbox").filter(":checked").parent().parent().each(function(){

   md.push($(this).find(".teaCls").text());

});

现在
md
是我的英雄

试一试,我想这正是你想要的减去alert()部分,用于演示目的。以下是JSFIDLE:


福阿
笨蛋
福克
拯救
$(函数(){
$(“#保存按钮”)。单击(函数(){
var keyValue={};
$(“#tableData:复选框:选中”)。每个(函数(){
var$this=$(this);
keyValue[$this.val()]=$this.closest('tr').find('.teaCls').html();
});
警报($.param(keyValue));
});
})

试一试,我想这正是您想要的,减去用于演示的alert()部分。以下是JSFIDLE:


福阿
笨蛋
福克
拯救
$(函数(){
$(“#保存按钮”)。单击(函数(){
var keyValue={};
$(“#tableData:复选框:选中”)。每个(函数(){
var$this=$(this);
keyValue[$this.val()]=$this.closest('tr').find('.teaCls').html();
});
警报($.param(keyValue));
});
})

我不想要复选框的值,我想要与所选复选框在同一行的另一列的文本。希望这能让你sense@sha404这是有道理的,但从你最初的问题来看完全不清楚。我认为你更新的ans应该可以工作+1.但我已经解决了这个问题。谢谢:)@sha404我觉得我的要简洁得多;-)我不想要复选框的值,我想要与选中复选框在同一行中的其他列的文本。希望这能让你sense@sha404这是有道理的,但从你最初的问题来看完全不清楚。我认为你更新的ans应该可以工作+1.但我已经解决了这个问题。谢谢:)@sha404我觉得我的要简洁得多;-)你确定问题解决了吗?在我看来,它将给出每个
.teaCls
元素的文本,而不考虑
:checked
。也请看我的最新答案。是的,非常确定。我已经用它完成了脚本。可能是您没有注意到过滤器(“:checked”)
我注意到了,但是在再次下降之前,您正在上升到祖父母(也可能是某些未选中框的祖父母?)。但是,如果没有适当的标记,很难判断。啊,我明白了-祖父母实际上是相关的
tr
元素。我还以为你已经升到了
(或者更确切地说是隐式
tbody
)你确定这个问题已经解决了吗?在我看来,它将给出每个
.teaCls
元素的文本,而不考虑
:checked
。也请看我的最新答案。是的,非常确定。我已经用它完成了脚本。可能是您没有注意到过滤器(“:checked”)
我注意到了,但是在再次下降之前,您正在上升到祖父母(也可能是某些未选中框的祖父母?)。但是,如果没有适当的标记,很难判断。啊,我明白了-祖父母实际上是相关的
tr
元素。我以为你已经一路上升到了
(或者更确切地说是隐式
tbody