html文件里有以下几条复选框数据
<li><label><input type="checkbox" name="fns" value="item1">item1</label></li>
<li><label><input type="checkbox" name="fns" value="item2">item2</label></li>
在控制台输出选择的项内容,可以这样用:
$("input[name=fns]").each((i,d)=>{ if (d.checked) { console.log(d.value) } });
取的是input元素里的value值
也可以这样用
$("input[name=fns]").each(function(){ if (this.checked) { console.log($(this).parent().parent().text()) } });
取的是label标签里的text内容
由于label标签是给人看的,总得有,input里的value则可以不存在,所以html文件这段还可以简化如下:
<li><label><input type="checkbox" name="fns">item1</label></li>
<li><label><input type="checkbox" name="fns">item2</label></li>
有几个要点需要注意下:
1 each()里用this的话,得用function(){}这种形式定义,不能用箭头函数()=>{},因为箭头函数里this不是当前元素,可能是window对象。
2 this是html对象,可以取它的属性值,比如checkbox的checked属性,value属性。
3 $(this)是jquery对象,可以反复应用元素选择器定位到指定元素