2017-05-24 66 views
0

我遇到了我在Google跟蹤代碼管理器中使用的getElementsByClassName函數問題。 我將需要捕獲我的客戶的窗體中的輸入字段值,我隔離類名稱,並在我的自定義JS中使用它,但我只得到未定義回來。 我正在使用的JS是下面的,我也創建了一個gtm.formsubmit事件,但我認爲事件在它有時間聽用戶輸入之前觸發,它甚至有可能嗎?getElementsByClassName - 未定義返回

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

謝謝!

回答

0

即使只有一個類wpcf7-form的元素,調用getElementsByClassName將返回一個元素數組(在這種情況下是一個元素)。由於一個數組沒有「value」屬性,你會得到一個「undefined」。

如果resonably肯定有與類只有一個元素,你可以在索引0做

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

,因爲一個單一的元素總是會在這種情況下,它會更容易使用DOM類型在Google跟蹤代碼管理器中添加變量,並將選擇方法設置爲「CSS選擇器」。這將返回您的類的第一個元素(或未定義,如果不存在)。

+0

謝謝艾克, –