我犯了一个错误,忘了在我写的一些代码中使用属性值:
<a href="http://somesite.org/test-link/1" class="summary-title-link"></a>
var link = document.getElementsByClassName("summary-title-link")[0],
ele = document.createElement("a");
ele.href = link;
我很惊讶地看到它仍然有效。
<a href="http://somesite.org/test-link/1"></a>
在下面这个例子的扩展中,我发现在使用路径名之前我不需要定位href属性很奇怪?它似乎假设我想要href属性的路径名。
var link = document.getElementsByClassName("summary-title-link")[0].pathname;
"/test-link/1"
答案 0 :(得分:5)
当你将一个锚元素转换为一个字符串时,你实际上得到的是href
值,或者更确切地说是“整个网址”,而不是像大多数其他人一样得到的外部HTML元素,这就是它工作的原因
var href = document.getElementsByClassName("test")[0]; // DOM element
console.log(href.toString()); // gives you "http://google.com"
<a class="test" href="http://google.com">link</a>
锚点的这种特殊行为在specification
中指定<强> HTMLHyperlinkElementUtils.toString()强>
返回包含整个网址的USVString 它是
URLUtils.href
的同义词,但不能用于修改值。