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
)