关于jQuery判断元素是否存在的问题示例探讨

是这样的,最近做jQuery训练时遇到jQuery判断元素是否存在时出现问题.

题目如下:请在"选择按钮3"后面,添加Id=rad4,处于选择状态的,之后文字为"选择按钮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"));
}
}
) 

}
)
(0)

相关推荐

  • JQuery1.8 判断元素是否绑定事件的方法

    On previous versions, you could call it like for other data : obj.data('events'); In jQuery 1.8, this direct access was removed, so in recent versions you must call it like this : $._data(obj[0],"events") 大概的意思是版本可以使用obj.data('event'); JQuery1.8

  • jquery判断元素的子元素是否存在的示例代码

    jquery判断子元素是否存在 一.判断子元素是否存在   //一级子元素 if($("#specialId>img").length==0)     if ($( "#specialId:has(img)" ).length==0)          {      //-----没有img子标记-----     }    else     {      //-------有img子标记------     } 二.选择特定id元素下的特定id子元素   

  • jQuery判断元素是否存在的可靠方法

    最简单的办法是判断元素匹配长度 譬如HTML代码: 复制代码 代码如下: <div class='mydiv'></div> 通常我们的做法是 复制代码 代码如下: if($('.mydiv').length>0) 比较可靠且不会出错的做法是: 复制代码 代码如下: if($('.mydiv').length && $('.mydiv').length>0)  return true; 使用传统javascript方法,如下: 复制代码 代码如下: if

  • jQuery判断元素上是否绑定了指定事件的方法

    本文实例讲述了jQuery判断元素上是否绑定了指定事件的方法.分享给大家供大家参考.具体如下: 例如下面的代码可以判断id=testdiv的元素是否绑定的click事件,这个判断只针对jQuery绑定的事件有效,普通JS的事件绑定无效. //jQuery event封装支持判断元素上是否绑定了事件,此方法只适用于jQuery绑定的事件 var $events = $("#testdiv").data("events"); if( $events &&

  • jquery判断元素是否隐藏的多种方法

    第一种:使用CSS属性 复制代码 代码如下: var display =$('#id').css('display'); if(display == 'none'){    alert("被你发现了,我是隐藏的啦!"); } 第二种:使用jquery内置选择器 假设我们页面有这么个标签, 复制代码 代码如下: <div id="test"> <p>仅仅是测试所用</p> </div> 那么,我们可以用以下语句来判断id

  • jQuery判断元素是否是隐藏的代码

    核心代码: 复制代码 代码如下: if($("#elem_id").is(":hidden")) { } 实例代码1: 复制代码 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title

  • jQuery判断元素是否显示 是否隐藏的简单实现代码

    jQuery判断元素是否显示 是否隐藏的简单实现代码 var node=$('#id'); 第一种写法 if(node.is(':hidden')){ //如果node是隐藏的则显示node元素,否则隐藏 node.show(); }else{ node.hide(); } 第二种写法 if(!node.is(':visible')){ //如果node是隐藏的则显示node元素,否则隐藏 node.show(); }else{ node.hide(); } if(node.is(':visib

  • jQuery 判断元素上是否绑定了事件

    我研究了一下之后发现,jQuery都将事件缓存起来了,其实也是为了防止内存溢出以及页面unload的时候的速度,也包括多函数触发,方便管理等诸多好处,具体可以参考此文. jQuery会在window.unload的时候卸载所有绑定过的事件,释放内存的. OK,言归正传.判断元素上是否绑定过事件用如下语句 复制代码 代码如下: jQuery.data(elem,"events")[type] //老版本也能用 $(elem).data("events")[type]

  • jQuery 判断元素整理汇总

    是否含有某 class 在表单提交之前,我们往往要利用 JavaScript 校验用户输入值,如果用户输入有误,那么我们就往该表单元素添加一个 error 的 class,再配合 CSS,该表单元素就显示为红色,以提醒用户. 最后我们还要根据是否有 error 来决定是否提交表单.怎么判断呢?如下: <input type="text" name="username" /> <input type="text" name=&qu

  • 关于jQuery判断元素是否存在的问题示例探讨

    是这样的,最近做jQuery训练时遇到jQuery判断元素是否存在时出现问题. 题目如下:请在"选择按钮3"后面,添加Id=rad4,处于选择状态的,之后文字为"选择按钮4"的HTML控件,只能添加一次(自由选择使用js原生或JQuery实现 function addradio() { if (!document.getElementById("rad4")) { var main = document.getElementById("

  • jquery判断元素内容是否为空的方法 原创

    用jquery获取元素内容需要分两个情况: input 用val(); var value = $('#test').val(); 是否为空的判断方法: if(value.length == 0){} 如果value为空执行的操作 if(value!=''){} 如果value不为空执行的操作 jQuery验证文本框内容不为空 通过$.fn 扩展jQuery方法 /** * 校验文本是否为空 * tips:提示信息 * 使用方法:$("#id").validate("提示文本

  • jquery更改元素属性attr()方法操作示例

    本文实例讲述了jquery更改元素属性attr()方法.分享给大家供大家参考,具体如下: jquery中用attr()方法来获取和设置元素属性,attr是attribute(属性)的缩写, 是js中setAttribute()和getAttribute()的简化 最基本常用的用法: $("img").attr("src","img/a.jpg"); $("img").attr("width","1

随机推荐