使用JS禁用所有传入链接

时间:2015-06-29 12:55:20

标签: javascript angularjs

不使用jquery,如何关闭以后的任何链接?因为我的ajax结果返回了包含<a href=""></a>标签的html。

3 个答案:

答案 0 :(得分:0)

在AJAX回调函数中,您可以运行此代码,该代码将从链接中删除href属性:

var links = document.getElementsByTagName("a");
for (var i=0; i<links.length; i++) {
    links[i].removeAttribute("href");
}

演示:http://jsfiddle.net/Lzjkf2uv/1/

答案 1 :(得分:0)

您可以使用为加载ajax的内容提供ID

  

的getElementsByTagName

工作代码:

<html>
<head>
<script>
window.onload=function(){/*

//removes attribute 
suggested by : Duncan Cowan

var anchors = document.getElementById("myAjaxResult");
anchors = anchors.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
  anchors[i].removeAttribute("href");
}*/

//NOTE: Prevents default actions (has default anchor's css)
var anchors = document.getElementById("myAjaxResult").getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
  anchors[i].addEventListener("click", 
    function(event){
      event.preventDefault();
    }
  );
}
}
</script>
</head>
<body>
<div id="myAjaxResult">
 <a href="www.google.com">Test 2</a>
<a href="www.google.com">Test 2</a>
<a></a>
<a></a>
</div>
</body>
</html>

注意:

在ajax SUCCESS上调用锚删除函数

答案 2 :(得分:0)

你在考虑使用CSS吗?

如果是,那么它是:

.disabled {
  pointer-events: none;
}