Я создаю пользовательскую переменную javascript в Диспетчере тегов Google, которая ДОЛЖНА регистрировать определенные c нажатия кнопок и передавать другое поле / текст заголовка в качестве переменной.
Проблема с кодом, который я ниже я обнаружил, что переменная mapButtonText не всегда существует (вы должны щелкнуть значок карты, чтобы она существовала) до тех пор, пока я go не перейду на консоль разработчиков в chrome и ищу mapButtonText все, что я возвращаю это:
Uncaught TypeError: Cannot read property 'innerText' of null at <anonymous>:1:124
Кроме того, когда оператор else if достигает условия mapButtonText, он полностью прерывает оператор if else (что означает, что даже первый оператор больше не будет возвращать правильное значение) .
function(){
var formButtonText = document.querySelector("#locationSelect > button").innerText;
var formSelectedLocation = document.querySelector('#locationID option').innerText;
var mapButtonText = document.querySelector("#map > div > div > div > div > div > div > div > div > div > div > div > div > div.infoWindow > a").innerText;
var mapSelectedLocation = document.querySelector('.infoWindow:hover h3').innerText;
var clickLocationName;
var clickElementText = {{Click Text}};
if (clickElementText === formButtonText){
clickLocationName = formSelectedLocation;
}
else if (clickElementText === mapButtonText){
clickLocationName = mapSelectedLocation;
}
else {clickLocationName = "No Location Selected";}
return clickLocationName;
}
Я протестировал исключение строки else if, и код работает нормально (см. Код ниже)
function(){
var formButtonText = document.querySelector("#locationSelect > button").innerText;
var formSelectedLocation = document.querySelector('#locationID option').innerText;
var mapButtonText = document.querySelector("#map > div > div > div > div > div > div > div > div > div > div > div > div > div.infoWindow > a").innerText;
var mapSelectedLocation = document.querySelector('.infoWindow:hover h3').innerText;
var clickLocationName;
var clickElementText = {{Click Text}};
if (clickElementText === formButtonText){
clickLocationName = formSelectedLocation;
}
else {clickLocationName = "No Location Selected";}
return clickLocationName;
}
Что мне не хватает в операторе else if для создания первого кусок кода работает?