關于jQuery判斷元素是否存在的問題示例探討
是這樣的,最近做jQuery訓練時遇到jQuery判斷元素是否存在時出現(xiàn)問題.
題目如下:請在"選擇按鈕3"后面,添加Id=rad4,處于選擇狀態(tài)的,之后文字為"選擇按鈕4"的HTML控件,只能添加一次(自由選擇使用js原生或JQuery實現(xiàn)
function addradio() { if (!document.getElementById("rad4")) { var main = document.getElementById("radioContainer"); var input = document.createElement("input"); input.setAttribute("type", "radio"); input.setAttribute("id", "rad4"); var span = document.createElement("span"); var txt = document.createTextNode("選擇按鈕4"); span.appendChild(txt); main.appendChild(input); main.appendChild(span); } }
判斷對象是否存在這樣就夠了。if (!document.getElementById("rad4"))但是jQuery中 if (!$("#rad4"))卻是永假的的 樓樓以為 跟javascript一樣事實并非如此
在jQuery中。一旦被$("")包裝器 包裝起來 就是一個對象 不是null或未定義 所以!$("#rad4")
永遠是false 。正確做法如下
包裝器中如果沒有對象那么長度就為0;只需要這樣就ok了
$(function () { $(".domtree div:eq(6) input:eq(1)").click(function () { if ($("#rad4").length < 1) { $("<input type='radio' id='rad4'> <span>選擇按鈕4</span>").appendTo($("#radioContainer")); } } ) } )
相關文章
jQuery基于事件控制實現(xiàn)點擊顯示內容下拉效果
這篇文章主要介紹了jQuery基于事件控制實現(xiàn)點擊顯示內容下拉效果,涉及jQuery事件響應及元素屬性動態(tài)操作相關技巧,需要的朋友可以參考下2017-03-03深入淺析ng-bootstrap 組件集中 tabset 組件的實現(xiàn)分析
這篇文章主要介紹了ng-bootstrap 組件集中 tabset 組件的實現(xiàn)分析 ,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07jQuery選擇器源碼解讀(四):tokenize方法的Expr.preFilter
這篇文章主要介紹了jQuery選擇器源碼解讀(四):tokenize方法的Expr.preFilter,本文用詳細的注釋解讀了tokenize方法的Expr.preFilter的實現(xiàn)源碼,需要的朋友可以參考下2015-03-03