目前我正在使用
var email, fax, sms = false;
if($('#uemail:checked').val() != undefined)
email = true;
if($('#ufax:checked').val() != undefined)
fax = true;
if($('#usms:checked').val() != undefined)
sms = true;
Run Code Online (Sandbox Code Playgroud)
但它写这么长的路.
有没有更好的方法来写这个?
use*_*716 10
试试这个:
if($('#uemail').is(':checked'))
email = true;
Run Code Online (Sandbox Code Playgroud)
甚至更短:
email = $('#uemail').is(':checked');
Run Code Online (Sandbox Code Playgroud)
你将:checked选择器传递给jQuery的.is()方法,该方法返回一个布尔值;
你可以.length像这样使用:
var email = $('#uemail:checked').length,
fax = $('#ufax:checked').length,
sms = $('#usms:checked').length;
Run Code Online (Sandbox Code Playgroud)
.length是匹配元素数组的长度...如果未检查,则为0.而且,由于在JavaScript中.length == 0提供,.length == false您可以执行上面的简短版本.如果你需要一个真/假,那就.length != 0改为:)
或者,另一种产生布尔值的替代方法,只需使用DOM .checked属性:
var email = $('#uemail')[0].checked,
fax = $('#ufax')[0].checked,
sms = $('#usms')[0].checked;
Run Code Online (Sandbox Code Playgroud)
或者,根本没有使用jQuery getElementById():
var email = document.getElementById('uemail').checked,
fax = document.getElementById('ufax').checked,
sms = document.getElementById('usms').checked;
Run Code Online (Sandbox Code Playgroud)