菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
79
0

jquery如何判断某个dom节点是否存在?

原创
05/13 14:22
阅读数 1365

想要判断某个dom节点是否存在,可以使用length属性来判断。

jquery使用length属性判断

length 属性包含 jQuery 对象中元素的数目。

示例:

<!DOCTYPE html>
<html>

	<head>
		<meta charset="utf-8">
		<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
	</head>

	<body>
		<div id="a">这里是id=a节点</div>
		<div>这里是DIV节点</div>
		<div>这里是DIV节点</div>
		<span>这里是span节点</span>
		<script>
			(function($) {
				$.fn.exist = function() {
					if($(this).length >= 1) {
						return true;
					}
					return false;
				};
			})(jQuery);
			alert($('#aaa').exist()); // false
			alert($('#a').exist()); // true
			alert($('div').exist()); // true
			alert($('p').exist()); // false
		</script>

	</body>

</html>

也可以使用原生JS来判断

JS原生判断DOM节点是否存在页面中

JavaScript原生函数没有提供判断DOM节点是否存在方法,我们通常获取DOM节点几乎都是document.getElement..方法,会返回一个object数组合集,我们可以通过object[0],object[1]这样来访问这个合集的每一个对象。既然返回的是数组合集,那么就有length属性,而length大于等于1即表示DOM节点存在页面中

代码:

<!DOCTYPE html>
<html>

	<head>
		<meta charset="utf-8">
	</head>

	<body>
		<div>这里是DIV节点</div>
		<div>这里是DIV节点</div>
		<span>这里是span节点</span>
		<script>
			Object.prototype.exist = function() {
				if(typeof this != 'undefined' && this.length >= 1) {
					return true;
				}

				return false;
			};
			var is_exist = document.getElementsByTagName('div').exist();
			alert(is_exist); // true

			var is_exist = document.getElementsByTagName('span').exist();
			alert(is_exist); // true

			var is_exist = document.getElementsByTagName('p').exist();
			alert(is_exist); // false
		</script>

	</body>

</html>

注意:如果使用是使用document.getElementById()方法获取对象的就不能使用exist()方法,因为根据ID取节点对象的方法在取不到节点的情况下会返回一个空对象,不会集成原型exist()函数,所以会报错!所以如果是根据ID取对象的可以直接if(obj)这样既可判断DOM节点是否存在页面中

总结:以上两种方法其实都是根据对象集合的length属性判断对象是否存在。

发表评论

0/200
79 点赞
0 评论
收藏
为你推荐 换一批