Javascript中 a.href 和 a.getAttribute('href') 结果不完全一致
来源:互联网 发布:加拿大留学移民 知乎 编辑:程序博客网 时间:2024/06/06 13:08
今天无意中发现这个么问题,页面上对所有A标签的href属性为空的自动添加一个链接地址,结果发现if判断条件始终都没生效,莫名其妙。
原来Javascript中 a.href 和 a.getAttribute(‘href’) 结果在某些情况下是不完全一致的,以前从来都没注意过这个问题。
下面举个栗子:
<a href="">测试1</a><a href="#">测试2</a><a href="javascript:void(0)">测试3</a><script type="text/javascript">var a = document.getElementsByTagName("a");var it, href, href2;for (var i=0; i<a.length; i++) { it = a.item(i); href = it.href; href2 = it.getAttribute('href'); if (it.href == '' || it.href == '#') console.log('it.href: ', it.innerHTML); if (it.getAttribute('href') == '' || it.getAttribute('href') == '#') console.log('it.getAttribute("href"): ', it.innerHTML); console.log('['+ href +"]\t\t"+ (href == href2 ? '==' : '!=') +"\t\t["+ href2 +']');+']');}</script>
看看“测试一”和“测试二”,你可能以为 a.href 会输出 空字符串 和 # 号,但实际上他输出的是当前页面地址+# ,以前一直都没注意这么个问题。
// 对于 "测试一" 和 "测试二" 这个判断是不会生效的if (it.href == '' || it.href == '#') console.log('it.href: ', it.innerHTML);
应该使用 getAttribute 方法来获取属性值
// 这样才正确if (it.getAttribute('href') == '' || it.getAttribute('href') == '#') console.log('it.getAttribute("href"): ', it.innerHTML);
对比结果
另外测试了下 form 表单的 action 属性也是一样的
1 0
- Javascript中 a.href 和 a.getAttribute('href') 结果不完全一致
- a标签中href="#"和href="javascript:void(0);"href跳转使用详细说明
- <a href="#">和<a href="javascript:void(0);">
- <a href="javascript: ;">和<a href="#">
- a href = "javascript:;"和 a href = "#"
- <a href="javascript:;">中href中的javascript:;的作用
- <a href="javascript:
- a标签中 href =" " 和 href ="#"和href ="Javascript: void(0)" 这三个有什么区别?
- <a>标签中href="javascript:;"
- <a>标签中href="javascript:;"
- a标签href中事javascript
- <a> href和onclick
- <a>标签中onclick和href
- <a href= "javascript:window
- <a href="#">与<a href="javascript:void(0)">
- a href="javascript:void(0)" 和 a href="#"的区别?
- <a>标签中href="javascript:;" "javascript:void(0);"
- a href 中 的 onclick
- 第十三周项目2 Dijkstra算法的验证
- 第十二周项目4——利用遍历思想求解图问题(4)-输出一些简单回路
- iOS 开发,工程中混合使用 ARC 和非ARC
- 【C/C++学院】0830-兰不达表达式/STL算法-操作数据
- javaSE(14)(字节流与字符流)
- Javascript中 a.href 和 a.getAttribute('href') 结果不完全一致
- Android兼容性问题 -- SparseArray.clone()方法异常
- 第14周上机实践项目2 - 二叉树排序树中查找的路径
- 【详解】从b站抓取信息并存入数据库
- ThreadLocal
- 第十一周项目1 算法验证3中序线索化二叉树的算法验证
- mysql prompt的用法详解
- 冒泡排序-指针交换
- 第九周项目2-对称矩阵压缩存储的实现和应用(1)