最近在做一个需求,将页面中的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元素的判断,解决;