for循环返回未定义

时间:2020-08-26 09:57:54

标签: javascript html for-loop hyperlink

我正在尝试创建一个函数,该函数根据可见的元素来更改href链接。

因此在此示例中,我希望我的链接为www.link.com/sample1/sample2

由于div sample3是隐藏的,因此在此示例中不应将其包含在url中。

<div class="filters"> sample1</div>
<div class="filters"> sample2</div>
<div class="filters" style="display:none"> sample3 </div>

<script>
function rt100_link_function() {
    var link = document.getElementById("RT100link");
    var all = document.getElementsByClassName("filters");
    for (var i = 0, max = all.length; i < max; i++) {
      if (isHidden(all[i]))
        link.href = link.href;
      else
        var one = all[i]
        link.href = link.href + one.innerhtml;
      }
  }
    
  function isHidden(el) {
    var style = window.getComputedStyle(el);
    return ((style.display === 'none'))
  }
</script>

我面临的问题是url输出为www.link.com/undefined-我只想获取可见div的内容并将其包含在url中,并以斜杠分隔-但.innerhtml不会。工作吗?

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

使用one.innerHTML代替one.innerhtml

link.href = link.href + one.innerHTML;

.innerhtml不是DOM Element属性,因此它将始终返回undefined