關(guān)于jQuery判斷元素是否存在的問題示例探討

字號:


    這篇文章主要探討了關(guān)于jQuery判斷元素是否存在的問題,需要的朋友可以參考下。
    是這樣的,最近做jQuery訓(xùn)練時遇到j(luò)Query判斷元素是否存在時出現(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"));
    }
    }
    )
    }
    )