如何访问 HtmlDocument 中属性的超链接

问题描述

所以我决定创建一个处理网站 HTMLDocument 的程序,现在我明白了如何做 getAttributeByID。但是,怎么,拿到属性后,怎么拿到属性的HYPERLINK,存成String??我试图在 getAttributeByID() 的 Microsoft 文档中上下搜索解决方案,但找不到任何。

我该怎么办?

顺便说一下,这是网站:view-source:https://zh.wikisource.org/wiki/%E9%AB%98%E9%BA%97%E5%8F%B2/%E5%8D%B7%E4%BA%94%E5%8D%81%E5%85%AD#%E5%BB%A3%E5%B7%9E%E7%89%A7

按Ctrl+U查看页面

此外,要查找属性的 id,请按 Ctrl+F 并搜索(不带 c 的引号)“ca-edit”

解决方法

您可能想要获取元素,然后使用 querySelector 获取其中的锚标记。最后,您需要获取该锚标记的 href 属性。

这个例子看起来像这样:

const element = document.getElementById('ca-edit');
const a = element.querySelector('a');
const href = a.getAttribute('href');

从技术上讲,您也可以在一行中完成所有操作:

const element = document.getElementById('ca-edit').querySelector('a').getAttribute('href');

然后你可以用那个 href 做任何你想做的事情。

,

首先,我不相信在 Js 中有这样的 getAttributeByID 函数。 我建议使用 querySelectorAll ,它使用 Css 选择器作为输入并且非常适合您的情况。 querySelectorAll 返回它可以找到的所有元素的数组,然后您可以迭代您找到的内容。 querySelectorAll

一旦我们有排序的下一位是 href 属性,有两种方法可以使用 getAttribute 函数或更好的方法来获取它,但 href 也是一个属性,因此您可以将其直接调用如下anchorelement.href hred property

现在我们已经整理了以下内容,这是您消费的示例

hyperlinks = document.querySelectorAll('a');
console.log(hyperlinks[0].href);

for (i = 0; i < hyperlinks.length; i++) {
  console.log(hyperlinks[i].href);
}
<nav id="sidenav" class="refnav__obj"><div class="scrollcontainer"><div class="title">Properties</div><ul><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/haspersonaldata" class="item">haspersonaldata</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/id" class="item">id</a></li><li class=" " ><a id='justme' href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/isabstract" class="item">isabstract</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/isattachment" class="item">isattachment</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/isdomain" class="item">isdomain</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/islink" class="item">islink</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/isobject" class="item">isobject</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/keephistorydays" class="item">keephistorydays</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/linkfrom" class="item">linkfrom</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/linkfromtype" class="item">linkfromtype</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/linkto" class="item">linkto</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/linktotype" class="item">linktotype</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/metatype" class="item">metatype</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/parent" class="item">parent</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/parenttype" class="item">parenttype</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/tag" class="item">tag</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/title" class="item">title</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/wrdschema" class="item">wrdschema</a></li></ul><div class="title">Functions</div><ul><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/closeentity" class="item">CloseEntity</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/closeordeleteentity" class="item">CloseOrDeleteEntity</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/createattribute" class="item">CreateAttribute</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/createchangeset" class="item">CreateChangeSet</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/createentity" class="item">CreateEntity</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/deleteallentities" class="item">DeleteAllEntities</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/deleteattribute" class="item">DeleteAttribute</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/deleteentities" class="item">DeleteEntities</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/deleteentity" class="item">DeleteEntity</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/deleteself" class="item">DeleteSelf</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/enrich" class="item">Enrich</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/ensureentity" class="item">EnsureEntity</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/findids" class="item">FindIds</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/generateuniqueattributetag" class="item">GenerateUniqueAttributeTag</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getattribute" class="item">GetAttribute</a></li><li class="active " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getattributebyid" class="item">GetAttributeById</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getchanges" class="item">GetChanges</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getdefaultvalues" class="item">GetDefaultValues</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getdescendantids" class="item">GetDescendantIds</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getdomval" class="item">GetDomVal</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getdomvals" class="item">GetDomVals</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getdomvaltag" class="item">GetDomValTag</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getdomvaltags" class="item">GetDomValTags</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getdomvaltitle" class="item">GetDomValTitle</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getdomvaltitles" class="item">GetDomValTitles</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getentity" class="item">GetEntity</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getentityfield" class="item">GetEntityField</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getentityfields" class="item">GetEntityFields</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/geteventmasks" class="item">GetEventMasks</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getnewentityguid" class="item">GetNewEntityGUID</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getnewentityid" class="item">GetNewEntityId</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/hasattribute" class="item">HasAttribute</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/importentities" class="item">ImportEntities</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/listattributes" class="item">ListAttributes</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/listchangesets" class="item">ListChangesets</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/listdomvals" class="item">ListDomVals</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/runquery" class="item">RunQuery</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/search" class="item">Search</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/updateattribute" class="item">UpdateAttribute</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/updateentity" class="item">UpdateEntity</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/updatemetadata" class="item">UpdateMetadata</a></li></ul></div></nav>

hyperlinks = document.querySelectorAll('#justme');
//or could nested since nav bar has id sidenav
hyperlinks = document.querySelectorAll('#sidenav #justme');
for (i = 0; i < hyperlinks.length; i++) {
  console.log(hyperlinks[i].href);
}
<nav id="sidenav" class="refnav__obj"><div class="scrollcontainer"><div class="title">Properties</div><ul><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/haspersonaldata" class="item">haspersonaldata</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/id" class="item">id</a></li><li class=" " ><a id='justme' href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/isabstract" class="item">isabstract</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/isattachment" class="item">isattachment</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/isdomain" class="item">isdomain</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/islink" class="item">islink</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/isobject" class="item">isobject</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/keephistorydays" class="item">keephistorydays</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/linkfrom" class="item">linkfrom</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/linkfromtype" class="item">linkfromtype</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/linkto" class="item">linkto</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/linktotype" class="item">linktotype</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/metatype" class="item">metatype</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/parent" class="item">parent</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/parenttype" class="item">parenttype</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/tag" class="item">tag</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/title" class="item">title</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/wrdschema" class="item">wrdschema</a></li></ul><div class="title">Functions</div><ul><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/closeentity" class="item">CloseEntity</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/closeordeleteentity" class="item">CloseOrDeleteEntity</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/createattribute" class="item">CreateAttribute</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/createchangeset" class="item">CreateChangeSet</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/createentity" class="item">CreateEntity</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/deleteallentities" class="item">DeleteAllEntities</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/deleteattribute" class="item">DeleteAttribute</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/deleteentities" class="item">DeleteEntities</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/deleteentity" class="item">DeleteEntity</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/deleteself" class="item">DeleteSelf</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/enrich" class="item">Enrich</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/ensureentity" class="item">EnsureEntity</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/findids" class="item">FindIds</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/generateuniqueattributetag" class="item">GenerateUniqueAttributeTag</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getattribute" class="item">GetAttribute</a></li><li class="active " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getattributebyid" class="item">GetAttributeById</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getchanges" class="item">GetChanges</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getdefaultvalues" class="item">GetDefaultValues</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getdescendantids" class="item">GetDescendantIds</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getdomval" class="item">GetDomVal</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getdomvals" class="item">GetDomVals</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getdomvaltag" class="item">GetDomValTag</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getdomvaltags" class="item">GetDomValTags</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getdomvaltitle" class="item">GetDomValTitle</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getdomvaltitles" class="item">GetDomValTitles</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getentity" class="item">GetEntity</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getentityfield" class="item">GetEntityField</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getentityfields" class="item">GetEntityFields</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/geteventmasks" class="item">GetEventMasks</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getnewentityguid" class="item">GetNewEntityGUID</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/getnewentityid" class="item">GetNewEntityId</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/hasattribute" class="item">HasAttribute</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/importentities" class="item">ImportEntities</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/listattributes" class="item">ListAttributes</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/listchangesets" class="item">ListChangesets</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/listdomvals" class="item">ListDomVals</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/runquery" class="item">RunQuery</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/search" class="item">Search</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/updateattribute" class="item">UpdateAttribute</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/updateentity" class="item">UpdateEntity</a></li><li class=" " ><a href="https://www.webhare.dev/reference/wrd/symbol/wrdtype2017/updatemetadata" class="item">UpdateMetadata</a></li></ul></div></nav>
document.querySelectorAll('a') 正在查找所有锚点

document.querySelectorAll('#justme') 正在通过 id justme 查找特定元素 document.querySelectorAll('#sidenav #justme') 首先通过名为 sidenav 的 id 查找特定元素,然后在其中搜索 id justme 非常方便,因为您可以有多个元素,但可以通过 id 识别它们,这可以筛选它们。