jquery中選擇器input:hidden和input[type=hidden]的區別


關於選擇器:hidden的說明,在jquery說明文檔中是這樣說的:匹配所有不可見元素,或者type為hidden的元素。而[type=hidden]是查找所有type屬性等於hidden的元素。兩者是有相同之處和不同之處的。:hidden匹配所有不可見元素,或者type為hidden的元素,所有樣式display等於none的元素和子元素以及type="hidden"的表單元素都在查找的結果中,而[type=hidden]則只查找type屬性為hidden的元素。

所以,input:hidden是查找不可見容器中的input元素,包括,textbox,radio,checkbox,button等和type="hidden"的表單元素。input[type=hidden]僅僅查找type="hidden"的表單元素。如以下例子:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>jquery Demo</title>
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript">
function beforeHidden()
{
    $("#result").text("隱藏前:$(\"input:hidden\").length="+$("input:hidden").length+";$(\"input[type=hidden]\").length="+$("input[type=hidden]").length);
}
function afterHidden()
{
    $("#div1").hide();
    $("#result").append("<br/>隱藏后:$(\"input:hidden\").length="+$("input:hidden").length+";$(\"input[type=hidden]\").length="+$("input[type=hidden]").length);
}
</script>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
<div id="div1">
<input type="text"  id="txt" />
<input type="radio" id="rdo" /><label for="rdo">單選框</label>
<input type="checkbox" id="chx"/><label for="chx">復選框</label>
<br />
<input type="button" id="btn1" value="原始" onclick="beforeHidden();"/>
</div>
<input type="hidden" id="hd"/> <input type="button" id="btn2" value="隱藏后" onclick="afterHidden();"/> <div id="result"></div></form> </body> </html>

例子中,div1被隱藏前,$("input:hidden").length=1;$("input[type=hidden]").length=1,隱藏后,隱藏后:$("input:hidden").length=5;$("input[type=hidden]").length=1,顯然,div1中的<input type="text"  id="txt" />
<input type="radio" id="rdo" />
<input type="checkbox" id="chx"/>
<input type="button" id="btn1" value="原始"/>也被包含進來了,而$("input[type=hidden]").length始終沒有變。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM