请查看以下代码:
$("#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
会最终连接所有这些字段中的text
。如果选中了两个复选框,其中一个包含单词some
,另一个包含单词text
,则最后tea
变量的值为sometext
。但我希望tea
是一个包含这些值的数组(在本例中为some
和text
),因为我需要在AJAX请求中传递它们并希望在{{1}中轻松捕获}
结构:
chkSelectedValues.php
我该怎么做?提前谢谢。
答案 0 :(得分: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();
答案 1 :(得分:1)
呀。解决了..感谢大家的帮助。
var md = new Array();
$("input:checkbox").filter(":checked").parent().parent().each(function(){
md.push($(this).find(".teaCls").text());
});
现在md
是我的英雄!
答案 2 :(得分: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));
});
})