【问题标题】:getElementsByClassName - Undefined ReturngetElementsByClassName - 未定义的返回
【发布时间】:2017-10-24 07:55:44
【问题描述】:

我在 Google 跟踪代码管理器中使用的 getElementsByClassName 函数存在问题。 我将需要在我的客户表单中捕获一个输入字段值,并且我正在隔离类名并在我的自定义 JS 中使用它,但是我只会得到 Undefined 回来。 我正在使用的 JS 如下,我还创建了一个 gtm.formsubmit 事件,但我认为该事件在它有时间听用户输入之前就触发了,这甚至可能吗?

function() { var inputField = document.getElementsByClassName("wpcf7-form"); return inputField.value || ""; }

谢谢!

【问题讨论】:

    标签: google-tag-manager getelementsbyclassname


    【解决方案1】:

    即使类 wpcf7-form 只有一个元素,对getElementsByClassName 的调用也会返回一个元素数组(在这种情况下是单个元素)。由于数组没有“值”属性,因此您会得到“未定义”。

    如果你有理由确定类中只有一个元素你可以做

    ...      
    var inputField = document.getElementsByClassName("wpcf7-form");
    return inputField[0].value || "";
    ...
    

    因为单个元素将始终位于索引 0。在这种情况下,在 Google 跟踪代码管理器中使用 DOM 类型变量并将选择方法设置为“CSS 选择器”会更容易。这将返回您的类的第一个元素(如果不存在,则返回未定义的)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-03
      • 2013-07-18
      • 2013-01-08
      • 1970-01-01
      • 2019-11-17
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      相关资源
      最近更新 更多