Поиск значения с помощью селектора CSS после определенного текста - PullRequest
0 голосов
/ 08 мая 2019

Я использую тип переменной DOM Element в Google Tag Manager, чтобы выбрать текстовые значения для сохранения в кодах отслеживания с помощью CSS Selector. Тем не менее, я застрял при попытке выбрать правильное значение CSS Selector, так как есть 15 с одинаковыми значениями, и единственный способ отличить значение, которое я хочу, это обработать определенное текстовое значение.

используя document.querySelectorAll и другие запросы, чтобы убрать остальные значения, но я не могу понять это.

Это HTML:

<span class="vdp-info-data col-sm-9 col-xs-9"><span class="vdp-info-label">Interior Color</span> <span class="vdp-info-value">Black</span></span></li><li class="col-xs-12 col-sm-6">
<span class="vdp-info-data col-sm-9 col-xs-9"><span class="vdp-info-label">Body Style</span> <span class="vdp-info-value">Coupe</span></span></li><li class="col-xs-12 col-sm-6">

Я хочу получить текст "Пара" через элемент DOM Google Tag Manager или одну из других переменных, чтобы затем отправить их обратно в Google для отслеживания.

1 Ответ

0 голосов
/ 08 мая 2019

Во-первых, вы на правильном пути, но, к сожалению, достигли конца возможностей CSS-селекторов.CSS-селектор ": содержит (текст)" отсутствует (он был предложен, но никогда не реализован).

Во-вторых, хотя это не позволяет получить значение с помощью переменной "Элемент DOM", вы все равно можетевозьмите его, используя переменную страницы «Custom JavaScript».В JavaScript вы можете либо использовать document.querySelectorAll (), а затем отфильтровать, чтобы найти метку, а затем использовать одноуровневый элемент для получения значения, например: enter image description here

function(){
    var bodyStyle;
    var labels = document.querySelectorAll('.vdp-info-label');
    for (var x=0; x<labels.length; x++){
        if(labels[x].innerText.trim()==='Body Style'){
            bodyStyle = labels[x].nextElementSibling.innerText;
            // Or use labels[x].parentElement.querySelector('.vdp-info-value').innerText
            break;
        }
    };
    return bodyStyle;
}

ИлиВы можете получить родительский элемент, который содержит все комбинации меток и значений для автомобиля, и использовать регулярное выражение для извлечения интересующего значения.

Sidenote

Я заметил, что похоже, что вы пытаетесьочистить атрибуты автомобиля на странице автомобиля дилера.Возможно, вы захотите проверить, размещают ли они информацию о транспортном средстве в другом месте на странице, которое легче очистить, например, в разделе схемы или глобальных переменных JS (оба распространены на сайтах шаблонов дилеров).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...