需求:点击确定按钮,获取指定ul.class中的选中状态兄弟节点文本
问题是,只有第一行的checkbox生效啊???
贴代码,
-
-
-
-
-
-
-
-
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
说几个大问题
第一个问题:if(ul.prop('class','fanxian')){};这个判断的只是给你选中的每个ul的class改为"fanxian";按照你的意思应该为if(ul.hasClass("fanxian")){}。
第二个问题:var cur = $(this).find('input[name=quan]').prop('checked');
这个在ul中找到input[name=quan]的集合,对于后面的属性prop('checked'),只选择第一个进行获取,
所以$(this).find('input[name=quan]').prop('checked')在第一个input选中的时候,为true,选择其他的同类input时候为false;按照你的意思应该为
var cur = $(this).find('input[name=quan]:checked')
我没有看懂你写的,但是我给你提供一个想法,你现在不是能点击获得checked的了吗?你把这个dom节点放在一个变量里,这样你获取值的时候就可以获取了
var cur = $(this).find('input[name=quan]').prop('checked'); 这里有问题,find找到所有input而你只判断了第一个,那你不是选第一个的时候就false的
另外你是想把选中的文字打印出来的话,
var quanText = $("input[name=quan]:checked").next('span').text();这句已经可以,前面的判断没意义
根据你的描述,大概是这个意思,
var cur = $(this).find('input[name=quan]').prop('checked');
这一句,前面 $(this).find('input[name=quan]') 你获得的是4个checkbox对象,然后这里后面直接跟prop('checked'),只会第一个checkbox进行判断,而不是你想的选中四个里面checked的那个