
文章插圖
在以前做項目編程的時候,還是自己寫Demo練習(xí)的時候,不管是用JavaScript還是用Jquery給標(biāo)簽元素綁定對象,都習(xí)慣使用選擇器進行元素標(biāo)簽對象的獲取,在最近看項目的過程中發(fā)現(xiàn)有人習(xí)慣直接使用I標(biāo)簽的ID或者Name直接獲取對象,我在看到代碼的時候還一下沒反應(yīng)過來,在這里做個記錄,避免忘記
使用選擇器獲取對象并綁定事件
<input type="button" id="javaScript" value="https://www.520longzhigu.com/diannao/測試01"><input type="button" id="jquery" value="https://www.520longzhigu.com/diannao/測試02"><script type="text/javascript">$(function(){/* JqueryId選擇器 */$("#jquery").on("click",function(){alert("id選擇器");});});/* 通過ID獲取對象 */var testBtn = document.getElementById("javaScript");testBtn.onclick=function(){alert("js");};</script>我們都知道,id和name兩個屬性在JS中是很特殊的兩個屬性,我們很多情況下關(guān)于獲取對象,綁定事件用得最多的是id 。在前后臺值的傳遞的時候我們更多的用的是name 。兩者都很重要,也有不同,id在頁面上需保持唯一性 。當(dāng)在js代碼中如果標(biāo)簽的id名和js中內(nèi)置的函數(shù)或者其他保留字段重名,那么在頁面加載渲染的時候,在頂層環(huán)境中會自動生成一個與Id名相同的window對象,那么我們在通過id綁定事件的時候也就可以寫成這樣
jqueryTest.onclick=function(){alert("id");};或者這樣
window.jqueryTest.onclick=function(){alert("id");};對于name屬性來說,也有這種特性,不過只限于特定的對象,例如form,iframe,applet,embed,object,img等 。
當(dāng)name屬性唯一時,以form標(biāo)簽舉例
<script type="text/javascript">$(function(){$("#btnId").on("click",function(){alert("觸發(fā)");testName.submit();});});</script><body><form action="" id="testId" name="testName"><input type="text" id="testInput" name ="userName"><input id="btnId" type="button" value="https://www.520longzhigu.com/diannao/提交"></form></body>在這里,我們不給表單做submit按鈕,而是直接用button,點擊后一樣會觸發(fā)form表單的submit事件 。
當(dāng)name 不唯一的時候,這里我們以embed標(biāo)記舉例,當(dāng)name不唯一時,生成是是一個只讀的數(shù)組,我們可以用for循環(huán)或者for each進行遍歷
<embed src="http://pic.aipaogen.com/220524/1H4054433-1.jpg" id="embed01" name="embedTest"><embed src="http://pic.aipaogen.com/220524/1H4054433-1.jpg" id="embed02" name="embedTest"><embed src="http://pic.aipaogen.com/220524/1H4054433-1.jpg" id="embed03" name="embedTest"><script type="text/javascript">for(var i=0;i<embedTest.length;i++){console.log(embedTest[i].id);};</script>這里控制臺日志會輸出以下結(jié)果
以上就是通過元素id或者name直接取值的方法,當(dāng)然作為一個非專業(yè)前端人員,個人推薦還是使用選擇器進行取值,因為直接用name或id,當(dāng)一個對代碼不熟悉的人直接看到這個代碼的時候,第一反應(yīng)就是testName.submit()這種要么testName是一個封裝的對象,要么就是自己框架的方法 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助:- 猜一猜元宵節(jié)也是中國古代的哪個節(jié)日 螞蟻莊園2月15日答案更新
- 螞蟻莊園元宵節(jié)是中國古代的什么節(jié)日 2月15日正確答案解析
- 買新房找中介好還是自己去售樓部好
- 中介說的2個點是多少
- 二手房中介費用一般收幾個點
- 早c晚a晚上可以玩手機嗎
- 二手房中介費2.5個點都要我來承擔(dān)
- 說說你高中時代做過最曖昧的事高中曖昧沒在一起你會遺憾嗎
- 輝瑞疫苗和中國疫苗區(qū)別 新冠滅活疫苗如何生產(chǎn)
- 特步品牌介紹
