這篇文章主要探討了關(guān)于jQuery判斷元素是否存在的問題,需要的朋友可以參考下。
是這樣的,最近做jQuery訓(xùn)練時(shí)遇到j(luò)Query判斷元素是否存在時(shí)出現(xiàn)問題.
題目如下:請(qǐng)?jiān)?選擇按鈕3"后面,添加Id=rad4,處于選擇狀態(tài)的,之后文字為"選擇按鈕4"的HTML控件,只能添加一次(自由選擇使用js原生或JQuery實(shí)現(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);
}
}
判斷對(duì)象是否存在這樣就夠了。if (!document.getElementById("rad4"))但是jQuery中 if (!$("#rad4"))卻是永假的的 樓樓以為 跟javascript一樣事實(shí)并非如此
在jQuery中。一旦被$("")包裝器 包裝起來 就是一個(gè)對(duì)象 不是null或未定義 所以!$("#rad4")
永遠(yuǎn)是false 。正確做法如下
包裝器中如果沒有對(duì)象那么長度就為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"));
}
}
)
}
)
更多信息請(qǐng)查看IT技術(shù)專欄