原码 var con=document.getElementsByTagName("li"); for (var i=0; i< con.length;i++){ var text=con[i].getAttribute(title); if(text!=null) { document.write(text+"<br>"); } }
其中var text=con[i].getAttribute(title);
改为var text=con[i].title;
也是一样能操作的,求解里面的内涵区别。是否是con[i].title;是con[i].getAttribute(title);的简写。还是说两者的底层实现是不一样的。
"con[i].title只能获取HTML元素中现有的属性
而con[i].getAttribute("title")不仅可以获取HTML元素中现在的属性,还可以获取非HTML元素也就是自定义的。
你可以试着把li元素中的某个title改为title1,使用con[i].getAttribute("title"),会发现结果只能显示title1的属性值,而title属性的值不会显示。"
第一种是DOM Core方法来获取属性,你说的那种属于HTML -DOM方法,两种同样可以获取和设置元素的属性,后一种代码相对简单
采纳的那个回答应该不好理解吧。你把if(text !== null)先注释掉,
<ul> <li title="第1个li">HTML</li> <li>CSS</li> <li title="第3个li">JavaScript</li> <li title="第4个li">Jquery</li> <li>Html5</li> </ul> ... var con=document.getElementsByTagName("li"); for (var i=0; i< con.length;i++){ var text = con[i].getAttribute("title");//text获取的是title的key值 var text1 = con[i].title;//text1获取的是title本身 document.write(text+"<br>")//会得到第1个li null 第3个li 第4个li null(有换行) document.write(text1+"<br>")//会得到第1个li 空行(什么都不显示)第个li 第4个li 空行(什么都不显示)(有换行) }
注意看我代码里注释的文本。还是写在外边吧:
text结果:
第1个li
null
第3个li
第4个li
null
text1结果:
第1个li
第3个li
第4个li
(这里其实还有个空行)
这样应该就理解了吧 :)