0

请看下面的代码:

   $("#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);
            }

        });       

    });

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

结构:

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

我怎样才能做到这一点?提前致谢。

4

3 回答 3

2

这应该有效:

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

演示在http://jsfiddle.net/alnitak/Dwevr/

编辑更新以反映 OP 的说明:

var tea = $(':checked').map(function() {
    return $(this).parent().siblings('.teaCls').text();
}).get();
于 2012-06-29T14:39:43.690 回答
1

试一试,我认为这正是您想要的,减去用于演示目的的 alert() 部分。这里也是 jsFiddle:http: //jsfiddle.net/pT2bP/

<table id="tableData">
    <tr>
        <td class="teaCls">FooA</td>
        <td><input type="checkbox" value="BarA"/></td>
    </tr>
    <tr>
        <td class="teaCls">FooB</td>
        <td><input type="checkbox" value="BarB"/></td>
    </tr>
    <tr>
        <td class="teaCls">FooC</td>
        <td><input type="checkbox" value="BarC"/></td>
    </tr>
</table>

<button id="saveButton">Save</button>


$(function() {

    $("#saveButton").click(function() {
        var keyValue = {};

        $("#tableData :checkbox:checked").each(function() {
            var $this = $(this);      
            keyValue[$this.val()] = $this.closest('tr').find('.teaCls').html();
        });
        alert($.param(keyValue));
    });
})
于 2012-06-29T15:22:03.407 回答
1

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

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

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

});

现在md是我的英雄!

于 2012-06-29T15:01:53.800 回答