// retrieving all <a> elements within <div id="test2">, using
// document.querySelectorAll() and converting that collection
// into an Array, using Array.from():
var all_links = Array.from(document.querySelectorAll("div#test2 a"))
// iterating over that Array using Array.prototype.forEach(),
// along with an Arrow function to remove the 'href' attribute
// from each of the <a> elements in the Array:
.forEach(link => link.removeAttribute('href'));
字符串
var all_links = Array.from(document.querySelectorAll("div#test2 a")).forEach(link => link.removeAttribute('href'));
var all_links = Array.from(document.querySelectorAll("div#test2 a"))
// here we use setAttribute() to set the value of the href
// attribute to the '#' value:
.forEach(link => link.setAttribute('href', '#'));
型
var all_links = Array.from(document.querySelectorAll("div#test2 a")).forEach(link => link.setAttribute('href', '#'));
var all_links = Array.from( document.querySelectorAll("div#test2 a") )
// using the anonymous function of Array.prototype.forEach() rather
// than Arrow functions, given the work being done here:
.forEach(function(link){
// while the <a> element has a firstChild:
while(link.firstChild) {
// we access the parentNode of the <a> and
// use the insertBefore() method to insert
// the firstChild of the <a> before the <a>:
link.parentNode.insertBefore(link.firstChild, link);
}
// once the <a> is emptied of its content,
// we again access the parentNode and remove
// the <a> element itself:
link.parentNode.removeChild(link);
});
型
var all_links = Array.from(document.querySelectorAll("div#test2 a")).forEach(function(link) {
while (link.firstChild) {
link.parentNode.insertBefore(link.firstChild, link);
}
link.parentNode.removeChild(link);
});
4条答案
按热度按时间dojqjjoe1#
您可以使用
querySelectorAll()
来实现此目的。传递一个CSS选择器,它匹配您需要定位的元素。根据您所描述的,div#test2 a
将执行以下操作:字符串
JSFiddle的
或者,为了获得最大兼容性(IE <9):
型
5jvtdoz22#
有几个选项,这里使用ES6:
字符串
的数据
或者,不是删除
href
属性,而是将其设置为'#'
的值:型
的字符串
或者,如果一个没有
href
属性的<a>
元素没有任何特殊的“用途”,我们可以打开文本或其他内容,并删除不再有用的<a>
元素:型
参考文献:
Array.from()
的数据。Array.prototype.forEach()
。document.querySelectorAll()
。Node.insertBefore()
。Node.parentNode
。Node.removeChild()
。while (...)
。jhkqcmku3#
因为jQuery标签包含在内:-
个字符
7d7tgy0s4#
既然你已经用jQuery标记了这个,你可以使用以下命令:
字符串