jQuery 判斷元素整理匯總
是否含有某 class
在表單提交之前,我們往往要利用 JavaScript 校驗(yàn)用戶輸入值,如果用戶輸入有誤,那么我們就往該表單元素添加一個(gè) error 的 class,再配合 CSS,該表單元素就顯示為紅色,以提醒用戶。
最后我們還要根據(jù)是否有 error 來(lái)決定是否提交表單。怎么判斷呢?如下:
<input type="text" name="username" /> <input type="text" name="password" class="error" /> <script type="text/javascript" src="jquery-3.1.1.min.js"></script> <script type="text/javascript"> <!-- alert($("input").hasClass("error")); //--> </script>
用 hasClass 即可。只要有一個(gè)元素具備 error 這個(gè) class,那么就返回 true;只有所有元素都不具備 error,才返回 false。
元素是否存在
if ($("#good").length <= 0) { alert("不存在。"); } else { alert("存在。"); }
如上,用 length 屬性判斷數(shù)組長(zhǎng)度,以決定元素是否存在。
是否 checked
<input type="checkbox" checked="true" /> <input type="checkbox" checked="false" /> <input type="checkbox" checked="disabled" /> <input type="checkbox" checked="hahaha" /> <input type="checkbox" checked /> <input type="checkbox" /> <script type="text/javascript" src="jquery-3.1.1.min.js"></script> <script type="text/javascript"> <!-- $("input").each(function (){ alert($(this).attr("checked")); }); //--> </script>
如上代碼,有六個(gè) input,顯示為:前五個(gè)為選中狀態(tài),最后一個(gè)為未選中。
alert 時(shí):前五個(gè)為 checked,最后一個(gè)為 undefined。
也就是說(shuō)只要標(biāo)簽中有 checked,即為選,與其屬性值無(wú)關(guān),而 jQuery 取屬性值時(shí)也是這么認(rèn)的。要判斷是否選中,用 attr("checked") == "checked" 即可。
不過(guò)對(duì)于 radio 要注意
<input type="radio" name="r1" checked="true" /> <input type="radio" name="r1" checked="false" /> <input type="radio" name="r1" checked="disabled" /> <input type="radio" name="r1" checked="hahaha" /> <input type="radio" name="r1" checked /> <input type="radio" name="r1" /> <script type="text/javascript" src="jquery-3.1.1.min.js"></script> <script type="text/javascript"> <!-- $("input").each(function (){ alert($(this).attr("checked")); }); //--> </script>
如上代碼,有六個(gè) input,由于是 radio,且 name 相同,顯示為:第五個(gè)為選中狀態(tài),其余為未選中。
alert 時(shí):前五個(gè)為 checked,最后一個(gè)為 undefined。
所以 jQuery 在這里要注意一下,它取的值與顯示情況不符。
應(yīng)付 radio 更好的辦法
有時(shí)候,我們只需要關(guān)心已經(jīng)選中的 radio,所以可以這么做:
<input type="radio" name="r1" value="1" checked="true" /> <input type="radio" name="r1" value="2" checked="false" /> <input type="radio" name="r1" value="3" checked="disabled" /> <input type="radio" name="r1" value="4" checked="hahaha" /> <input type="radio" name="r1" value="5" checked /> <input type="radio" name="r1" value="6" /> <script type="text/javascript" src="jquery-3.1.1.min.js"></script> <script type="text/javascript"> <!-- alert($("input:radio:checked").val()); //--> </script>
這樣結(jié)果就是 5。
是否禁用
<input type="text" disabled="true" /> <input type="text" disabled="false" /> <input type="text" disabled="disabled" /> <input type="text" disabled="hahaha" /> <input type="text" disabled /> <input type="text" /> <script type="text/javascript" src="jquery-3.1.1.min.js"></script> <script type="text/javascript"> <!-- $("input").each(function (){ alert($(this).attr("disabled")); }); //--> </script>
如上代碼,有六個(gè) input,顯示為:前五個(gè)為禁用狀態(tài),最后一個(gè)為可用。
alert 時(shí):前五個(gè)為 disabled,最后一個(gè)為 undefined。
也就是說(shuō)只要標(biāo)簽中有 disabled,即為禁用,與其屬性值無(wú)關(guān),而 jQuery 取屬性值時(shí)也是這么認(rèn)的。要判斷是否禁用,用 attr("disabled") == "disabled" 即可。
相關(guān)文章
jQuery代碼實(shí)現(xiàn)圖片墻自動(dòng)+手動(dòng)淡入淡出切換效果
在網(wǎng)頁(yè)上經(jīng)??梢钥吹接斜尘皥D片可以自動(dòng)淡入淡入切換的效果,非常漂亮,實(shí)用性也非常高,今天小編給大家分享基于jquery代碼實(shí)現(xiàn)圖片墻自動(dòng)+手動(dòng)淡入淡出切換效果,感興趣的朋友一起學(xué)習(xí)吧2016-05-05JQuery常見(jiàn)節(jié)點(diǎn)操作實(shí)例分析
這篇文章主要介紹了JQuery常見(jiàn)節(jié)點(diǎn)操作,結(jié)合實(shí)例形式分析了jQuery針對(duì)元素節(jié)點(diǎn)的添加、刪除常見(jiàn)操作函數(shù)使用技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-05-05jQuery1.9.1針對(duì)checkbox的調(diào)整方法(prop)
這篇文章主要介紹了jQuery1.9.1針對(duì)checkbox的調(diào)整方法,用prop代替attr2014-05-05使用jquery自定義鼠標(biāo)樣式滿足個(gè)性需求
瀏覽器是有自帶的鼠標(biāo)樣式的,如果某些時(shí)候?yàn)榱吮3质髽?biāo)樣式的統(tǒng)一,或者想指定特定的鼠標(biāo)樣式該怎么辦呢?那就要使用自定義了,下面有個(gè)不錯(cuò)的示例,喜歡的朋友可以參考下2013-11-11jquery加載頁(yè)面的方法(頁(yè)面加載完成就執(zhí)行)
jquery加載頁(yè)面的方法(頁(yè)面加載完成就執(zhí)行),建議大家看下windows.onload與$(document).ready之間的區(qū)別。2011-06-06jquery快捷動(dòng)態(tài)綁定鍵盤事件的操作函數(shù)代碼
動(dòng)態(tài)綁定鍵盤事件的方法或許會(huì)有很多,在本文將為大家介紹下jquery是如何快捷實(shí)現(xiàn)的,感興趣的朋友不要錯(cuò)過(guò)2013-10-10