html上不存在DOM锚href属性时,JS脚本失败

时间:2018-12-02 22:48:53

标签: javascript html

我有一个小JS脚本,当我单击按钮时会被调用。该脚本会执行几项操作,其中(如果存在)采用链接的href并使用它填写#id_instagram输入字段。

问题:页面上始终不存在“ a href”链接。当不存在时,去获取其href的第一行JS行显然不会找到导致整个JS脚本失败且无法运行的任何内容。我该怎么说?“如果在href中,则执行此操作,否则执行该操作”?

谢谢

HTML

<a href="www.instagram.com/link"  id="instagramPath"></a>

<input id="#id_instagram"></input>

JS

var instagramPath = document.getElementById('instagramPath').href;
document.querySelector('#id_instagram').value = instagramPath;

2 个答案:

答案 0 :(得分:0)

如果它始终不存在(或在每次加载页面时),则可以使用if条件处理此问题:

var instagramLink = document.getElementById('instagramPath');

// this will prevent errors if instagramLink does not exist
if (instagramLink) {
    document.querySelector('#id_instagram').value = instagramLink.href;
}

答案 1 :(得分:0)

您只需要使用getElementById获取Node。始终欢迎使用防御性编码,因此您可以检查节点是否不为空,为空或未定义。如果存在,则可以使用Element对象的getAttribute方法获取属性。如果找不到,它将为null。

var instagramPathNode = document.getElementById('instagramPath');

// if the node exists
if(instagramPathNode){
   var instagramPath = instagramPathNode.getAttribute("href");
   if(instagramPath){
     //href exists and is not empty
     // do processing here
   }
}