Как выбрать значения из элементов li в Cheerio/jQuery?

<div class = "tabs__content tabs__content--bg js-tab-panel">
<div class = "tabs__panel tabs__panel--active">
   <div class = "product__sizes-wrapper">
      <ul class = "product__sizes-select js-size-select-list" data-locale = "UK">
         <li class = "product__sizes-option" data-msg = "Sample Message" data-name = "6"  data-value = "060">
            <span class = "product__sizes-size">
            <span class = "product__sizes-size-1">6</span>
            <span class = "product__sizes-size-2"></span>
            </span>
         </li>
         <li class = "product__sizes-option" data-msg = "Sample Message" data-name = "7"  data-value = "070">
            <span class = "product__sizes-size">
            <span class = "product__sizes-size-1">7</span>
            <span class = "product__sizes-size-2"></span>
            </span>
         </li>
         <li class = "product__sizes-option" data-msg = "Sample Message" data-name = "8"  data-value = "080">
            <span class = "product__sizes-size">
            <span class = "product__sizes-size-1">8</span>
            <span class = "product__sizes-size-2"></span>
            </span>
         </li>
         <li class = "product__sizes-option" data-msg = "Sample Message" data-name = "9.5"  data-value = "095">
            <span class = "product__sizes-size">
            <span class = "product__sizes-size-1">9.5</span>
            <span class = "product__sizes-size-2"></span>
            </span>
         </li>
      </ul>
   </div>
</div>

Я хочу извлечь значения из классов product__sizes-size-1 и преобразовать их в массив. Я попытался использовать функцию .map(), чтобы попытаться заполнить массив, но он кажется пустым. Чтобы было ясно, я хочу, чтобы массив был заполнен как [6,7,8,9.5] и т. д.

const sizes = $(".product__sizes-wrapper [data-locale = 'UK']").map(function() {
                        return $(this).text();
                     }).get();

Покажи нам, что ты пробовал. Имея в виду, что у вас нет ценностей. У вас есть атрибуты данных, один из которых имеет ключ значения. Это не одно и то же.

Taplar 18.12.2020 23:09

Показано, что я пытался

Scene 18.12.2020 23:17

Ошибаетесь, элемент с локалью данных — это ul, который только один. Что именно вы пытаетесь составить список?

Taplar 18.12.2020 23:18

Значения данных из класса product__sizes-size-1 (9.5,8,7) и т. д.

Scene 18.12.2020 23:34

Я отредактировал свой пост OG для ясности @Taplar

Scene 18.12.2020 23:38

Так что измените свой селектор, чтобы найти этих парней. Вы не можете остановить свой селектор на родительском элементе, если хотите отобразить список дочерних элементов. Найдите детей и нанесите на них карту. $(".product__sizes-wrapper [data-locale = 'UK'] .product__sizes-size-1").map(...)

Taplar 18.12.2020 23:38

Давайте продолжим обсуждение в чате.

Scene 18.12.2020 23:46
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
7
717
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Чтобы выбрать его $('#product__sizes-select li.product__sizes-size-1');

В массиве

var product_sizes = [];
$('ul').each(function() {
    var localproduct_sizes = [];
    $(this).find('li').each(function(){
        localproduct_sizes.push( $(this).attr('product__sizes-size-1') );
    });
    product_sizes.push(localproduct_sizes);
});

Я получаю undefined для каждого значения в массиве

Scene 18.12.2020 23:37
Ответ принят как подходящий

Ваш подход правильный, вы просто используете неправильный селектор. Вместо этого используйте product__sizes-size-1:

$(document).ready(function(){
    var sizes = $('.product__sizes-size-1').map(function(){return $(this).text()}).get();
});

Другие вопросы по теме