jq选择器获取节点,并判断节点是否是dom元素

最近在做一个需求,将页面中的title改为该节点的内容,方便客户浏览

通过jq属性选择器获取:

var inputArr=$("input[title]");

我这里是含有title的进行处理,你可以根据自己需求进行选择,(建议用jq的选择器,因为它很强大);

此时获取到的并非全是dom元素的集合,如果是非dom元素的集合,或使得页面报错,导致页面加载问题,解决方案是循环数组后对各个进行dom元素判断;

//判断是否有
			if(inputArr.length>0){
				for(var i in inputArr){
					//对应的某一个节点
					var eleInp=inputArr[i];
					//判断是否是dom节点
					**var isDOM = ( typeof HTMLElement === 'object' ) ?
						 eleInp instanceof HTMLElement
							:
						 eleInp && typeof eleInp === 'object' && eleInp.nodeType === 1 && typeof eleInp.nodeName === 'string';**
					//获取到节点的内容
					if(isDOM){
					    var valInp=$(eleInp).val();
						$(eleInp).attr("title",valInp);
					}
				}
			}

至此,解决问题;
在解决该需求的时候,犯了以下几个错误:
1:获取后没有判断是否存在,如果不存在,会报错;
2:dom元素的判断,刚开始没有判断的时候,页面一直报错,通过弹窗调试发现获取的有很多不是dom元素,没有有理解为什么,直接找了dom元素的判断,解决;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值