關于jQuery判斷元素是否存在的問題示例探討
是這樣的,最近做jQuery訓練時遇到jQuery判斷元素是否存在時出現問題.
題目如下:請在"選擇按鈕3"后面,添加Id=rad4,處于選擇狀態(tài)的,之后文字為"選擇按鈕4"的HTML控件,只能添加一次(自由選擇使用js原生或JQuery實現
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"));
}
}
)
}
)
相關文章
深入淺析ng-bootstrap 組件集中 tabset 組件的實現分析
這篇文章主要介紹了ng-bootstrap 組件集中 tabset 組件的實現分析 ,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07
jQuery選擇器源碼解讀(四):tokenize方法的Expr.preFilter
這篇文章主要介紹了jQuery選擇器源碼解讀(四):tokenize方法的Expr.preFilter,本文用詳細的注釋解讀了tokenize方法的Expr.preFilter的實現源碼,需要的朋友可以參考下2015-03-03

