现在我们首先通过javascript来选中这个元素然后获取它的checked属性。 复制代码 代码如下: function checkCheckBox() { if (document.getElementById("myCheckBox").checked) { //change it to alert("Its Checked"); if you not working with console console.log("Its Checked"); } else { console.log("No its not Checked"); } }
可以看到,我们先通过id选中了这个元素然后判断它的checked属性,如果复选框选中了,它的值是true,如果复选框没有选中,它的值将是false。 如果你使用的是jQuery并且你不想用原生的javascript来进行这个判断,方法有很多: 使用 is(":checked") 这个用法中你将使用jQuery的 is()函数。这个函数的功能是判断选中的元素或者元素集合是否满足你传递给该函数的条件参数,如果条件符合,返回true,否则返回false。 所以为了使用这个函数,我们需要选中元素然后检测选择器:checked 的值,这个选择器适用于复选框、单选按钮和select标签。 [/code] $("input[type="button"]").click(function () { if ($("#myCheckBox").is(":checked")) { //change it to alert("Its Checked"); if you not working with console console.log("Its Checked"); } else { console.log("No its not Checked"); } }); [/code] 使用 prop() 在jQuery1.6之前,函数attr()用来获取元素的property 和attributes,但是非常容易让人产生疑惑。所以jQuery1.6之后,一个新的函数prop()来获取元素的当前的property值。 但是在这之前,我们首先需要弄明白property 和attributes的区别。attributes是你给HTML标签设置的一些属性值,这包括你给一个标签设置的class、id甚至给输入框设定初始值一样。如果你没有在标签里面设置属性值但是却通过attr()来获取属性值, 会出现undefined的情况。prop()同样是用来获取元素的属性值,但是与attr()有着明显的区别的是,即便没有在html标签中定义想要获取的属性,也能够正确的返回需要的当前的属性值。 根据官方的建议:具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()。 为了直观的体现两者之间的差别,你可以再页面加载完成之后立即改变输入框的值,这时候你就会发现即便是你的输入框的值变化了,用attr()获取的属性值并不会随着文本的改变而改变,而通过property()来获取的属性值会随着文本框内容的变化而变化。 看一个例子,这里我们有一个设置了初始值的和一些attribute属性集的输入框: 复制代码 代码如下: <input type="text" id="myTextBox" value="set attribute value" />
然后在JQuery代码里我们这样写: 复制代码 代码如下: console.log("Attribute Value is : "+$("#myTextBox").attr("value")); console.log("Property Value is : "+$("#myTextBox").prop("value"));
我们会发现,通过prop()来获取输入框里面的值永远都是和它里面的值同步的,而通过attr()老获取输入框里面的值一直都是在html标签里面设置的值。 复制代码 代码如下: $("input[type="button"]").click(function () { alert("Attribute Value is : "+$("#myTextBox").attr("value")); alert("Property Value is : "+$("#myTextBox").prop("value")); });
使用 filter :checked var isChecked = $("#myCheckBox:checked").length > 0; 另外一种用于判断这个属性的值的方法是在选择元素的时候加上一个过滤器 :checked,然后根据所获得的元素的长度来判断元素的属性。但是这种用法并不推荐,因为当你的页面上有很多组复选框并且使用class选择器而不是id选择器的时候,所得到的答案可能是错误的。 复制代码 代码如下: $("input[type="button"]").click(function () { if ($("#myCheckBox:checked").length > 0 ) { //change it to alert("Its Checked"); if you not working with console console.log("Its Checked"); } else { console.log("No its not Checked"); } });