Javascript ytable'); $(“#btn”)。单击(函数(){ var结果=[]; $('input:checkbox:checked')。每个(函数(项){ $(this).parent().sides().each(function(){ result.push($(this.text()) }); }); 警报(结果) }); 检查 名称 姓氏 国家 电子邮件 彼佳 L1 国家1 电子邮件1 科里亚 L2 国家2 电子邮件2 瓦西亚 L3 国家3 电邮3 单击我
您可以使用下面的内容。我修改了您的内部查询以转到父级并查找兄弟姐妹Javascript ytable'); $(“#btn”)。单击(函数(){ var结果=[]; $('input:checkbox:checked')。每个(函数(项){ $(this).parent().sides().each(function(){ result.push($(this.text()) }); }); 警报(结果) }); 检查 名称 姓氏 国家 电子邮件 彼佳 L1 国家1 电子邮件1 科里亚 L2 国家2 电子邮件2 瓦西亚 L3 国家3 电邮3 单击我,javascript,jquery,html,css,Javascript,Jquery,Html,Css,您可以使用下面的内容。我修改了您的内部查询以转到父级并查找兄弟姐妹 var tableControl=$(“#mytable”); $(“#btn”)。单击(函数(){ var结果=[]; $('input:checkbox:checked')。每个(函数(项){ $(this).parent().sides().each(function(){ result.push($(this.text()) }); }); 警报(结果) }); 检查 名称 姓氏 国家 电子邮件 彼佳 L1 国家1
var tableControl=$(“#mytable”);
$(“#btn”)。单击(函数(){
var结果=[];
$('input:checkbox:checked')。每个(函数(项){
$(this).parent().sides().each(function(){
result.push($(this.text())
});
});
警报(结果)
});代码>
检查
名称
姓氏
国家
电子邮件
彼佳
L1
国家1
电子邮件1
科里亚
L2
国家2
电子邮件2
瓦西亚
L3
国家3
电邮3
单击我
我建议您在单击复选框时处理结果对象,而不是每次要汇总结果时都单击按钮,这样可以使状态更稳定,并更好地处理动态更改。考虑将代码更改为:
var tableControl = $('#mytable');
//An object that maps checkbox id to an object containing name, last and email
var result = {};
tableControl.find('input:checkbox').click(function() {
var key = $(this).attr('id');
//If checkbox clicked and not checked, then remove object from map
if(!$(this).is(":checked")){
delete result[key];
return;
}
var row = $(this).parent().parent();
//Get children based on the start of the id string
var firstName = row.children("td[id^='name']").text();
var lastName = row.children("td[id^='last']").text();
var email = row.children("td[id^='email']").text();
result[key] = {
name: firstName,
last : lastName,
email: email
}
});
这样,只要单击复选框,results对象就会立即更新以反映所需的值。结果对象将如下所示:
{
"check_1": {
"name": "Petya",
"last": "L1",
"email": "Email1"
},
"check_2": {
"name": "Kolya",
"last": "L2",
"email": "Email2"
},
"check_3": {
"name": "Vasya",
"last": "L3",
"email": "Email3"
}
}
我建议您在单击复选框时处理结果对象,而不是每次都单击按钮来总结结果,这样可以使状态更稳定,并更好地处理动态更改。考虑将代码更改为:
var tableControl = $('#mytable');
//An object that maps checkbox id to an object containing name, last and email
var result = {};
tableControl.find('input:checkbox').click(function() {
var key = $(this).attr('id');
//If checkbox clicked and not checked, then remove object from map
if(!$(this).is(":checked")){
delete result[key];
return;
}
var row = $(this).parent().parent();
//Get children based on the start of the id string
var firstName = row.children("td[id^='name']").text();
var lastName = row.children("td[id^='last']").text();
var email = row.children("td[id^='email']").text();
result[key] = {
name: firstName,
last : lastName,
email: email
}
});
这样,只要单击复选框,results对象就会立即更新以反映所需的值。结果对象将如下所示:
{
"check_1": {
"name": "Petya",
"last": "L1",
"email": "Email1"
},
"check_2": {
"name": "Kolya",
"last": "L2",
"email": "Email2"
},
"check_3": {
"name": "Vasya",
"last": "L3",
"email": "Email3"
}
}
我认为必须是tableControl.find('input[type=“checkbox”]:checked')。每个(…)
?为什么使用vanilla js按id获取元素而不是jquery$(“#myTable”)
而不是document.getElementById('myTable')
我认为它必须是tableControl.find('input[type=“checkbox”]:checked')。每个(…)
?为什么使用vanilla js按id获取元素而不是jquery<代码>$(“#myTable”)
而不是document.getElementById('myTable')
我要说的和你说的一样。我的做法和你在这里写的一样开车?我总是发现在事件发生时更新依赖值比在用户准备好使用数据的任意时间更新依赖值更有意义(并且更易于维护)。正确。这就是为什么我也像你那样做的原因。:)我本想跟你说同样的话。我的做法和你在这里写的一样开车?我总是发现在事件发生时更新依赖值比在用户准备好使用数据的任意时间更新依赖值更有意义(并且更易于维护)。正确。这就是为什么我也像你那样做的原因。:)谢谢@RachelGallen。我真的很感激。:)尽管如此,我并没有使用jquery,而是使用纯javascript。但是非常有用的小提琴。我要保存这个链接。@IhavCoder哦,是的,我没有想到(jquery/plainjs的东西)。。jquery是非常简单和有用的,不过一旦你习惯了它(而且不需要很长时间就能学会)。。很高兴能为您提供帮助:)@IhavCoder我刚从您的个人资料中看到,您已经在使用jquery了。在上次评论之前没有注意到!当然,我发现一路上的帮助总是很好的:)是的,我使用jquery。我同意,jquery功能强大,但我正在处理的这个特殊任务只需要使用javascript。谢谢(雷切尔)谢谢@RachelGallen。我真的很感激。:)尽管如此,我并没有使用jquery,而是使用纯javascript。但是非常有用的小提琴。我要保存这个链接。@IhavCoder哦,是的,我没有想到(jquery/plainjs的东西)。。jquery是非常简单和有用的,不过一旦你习惯了它(而且不需要很长时间就能学会)。。很高兴能为您提供帮助:)@IhavCoder我刚从您的个人资料中看到,您已经在使用jquery了。在上次评论之前没有注意到!当然,我发现一路上的帮助总是很好的:)是的,我使用jquery。我同意,jquery功能强大,但我正在处理的这个特殊任务只需要使用javascript。谢谢(雷切尔)