jQuery 判斷元素整理匯總
是否含有某 class
在表單提交之前,我們往往要利用 JavaScript 校驗(yàn)用戶輸入值,如果用戶輸入有誤,那么我們就往該表單元素添加一個(gè) error 的 class,再配合 CSS,該表單元素就顯示為紅色,以提醒用戶。
最后我們還要根據(jù)是否有 error 來決定是否提交表單。怎么判斷呢?如下:
<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ù)組長度,以決定元素是否存在。
是否 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。
也就是說只要標(biāo)簽中有 checked,即為選,與其屬性值無關(guān),而 jQuery 取屬性值時(shí)也是這么認(rèn)的。要判斷是否選中,用 attr("checked") == "checked" 即可。
不過對于 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。
也就是說只要標(biāo)簽中有 disabled,即為禁用,與其屬性值無關(guān),而 jQuery 取屬性值時(shí)也是這么認(rèn)的。要判斷是否禁用,用 attr("disabled") == "disabled" 即可。
相關(guān)文章
firefox瀏覽器用jquery.uploadify插件上傳時(shí)報(bào)HTTP 302錯(cuò)誤
這篇文章主要介紹了firefox瀏覽器用jquery.uploadify插件上傳時(shí)報(bào)HTTP 302錯(cuò)誤,分析了下,原來是利用flash進(jìn)行post上傳時(shí)沒有包含原來的session信息,而是重新創(chuàng)建了一個(gè)session,知道原因了,我們來看看如何解決吧。2015-03-03
jQuery插件FusionCharts實(shí)現(xiàn)的3D帕累托圖效果示例【附demo源碼】
這篇文章主要介紹了jQuery插件FusionCharts實(shí)現(xiàn)的3D帕累托圖效果,結(jié)合實(shí)例形式分析了jQuery使用FusionCharts載入xml數(shù)據(jù)繪制3D帕累托圖的相關(guān)實(shí)現(xiàn)技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2017-03-03
Jquery實(shí)現(xiàn)仿新浪微博獲取文本框能輸入的字?jǐn)?shù)代碼
Jquery實(shí)現(xiàn)仿新浪微博獲取文本框所能輸入的字?jǐn)?shù),感興趣的朋友可以研究一下代碼方便你折騰,希望本文提供的方法可以幫助到你2013-02-02
jquery實(shí)現(xiàn)的Banner廣告收縮效果代碼
這篇文章主要介紹了jquery實(shí)現(xiàn)的Banner廣告收縮效果代碼,可實(shí)現(xiàn)點(diǎn)擊按鈕收縮與展開廣告圖片的功能,非常簡單實(shí)用,需要的朋友可以參考下2015-09-09

