DataTables - получить идентификатор из диапазона в Cell-Data

У меня есть Таблица данных, и в этой таблице есть ячейка, содержащая несколько span-элементов, например этот:

<span class = "btn btn-xs btn-info" data-room = "1910" data-id = "1" disabled>
  <strong>unimportant description</strong>
</span>

Я только что поместил содержимое ячейки в переменную:

var extras = roomstable.cell(closestRow,3).data();

Как я могу отфильтровать идентификаторы в тегах data-id, чтобы поместить их в массив?

Поведение ключевого слова "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
0
545
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я могу предоставить решение с помощью jquery.

<script src = "https://code.jquery.com/jquery-3.3.1.js"></script>

В качестве аргумента вы должны указать свою ячейку, в вашем случае это будет extras. Попробуйте подарить свой roomstable.cell(closestRow,3). В моем случае было $('#dt').find('tr').eq(1).find('td').eq(0)

$(function(){
  var table =  $('#dt').DataTable();
    
   arr_ids($('#dt').find('tr').eq(1).find('td').eq(0)); 
})

function arr_ids(celll) {
    
    var ar = [];
    
    celll.find('span').each(function(){
        if ($(this).data('id')) {
            ar.push($(this).data('id'));
        }
    });
    
    alert(ar);
}
<script src = "https://code.jquery.com/jquery-3.3.1.js"></script>
<script src = "https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
<script src = "https://cdn.datatables.net/1.10.19/js/dataTables.bootstrap4.min.js"></script>
            
<table id = "dt">
    <thead>
        <th>aaaaaaaaaaaaaaaaaaaaaa&nbsp;&nbsp;</th>
        <th>bbbbbbbbbbbbbbbbbbbbbbb&nbsp;&nbsp;</th>
        <th>ccccccccccccccccccccc&nbsp;&nbsp;</th>
    </thead>
    <tbody>
        <tr> 
            <td>
                <span class = "btn btn-xs btn-info" data-room = "1910" data-id = "1" disabled>
                    <strong>unimportant description</strong>
                </span>
                <span class = "btn btn-xs btn-info" data-room = "1945" data-id = "13" disabled>
                    <strong>unimportant description</strong>
                </span>
            </td>
            <td> </td>
            <td> </td>
        </tr>  
    </tbody>
    <tfoot>
        <th>aaaaaaaaaaaaaaaaaaaaaa&nbsp;&nbsp;</th>
        <th>bbbbbbbbbbbbbbbbbbbbbbb&nbsp;&nbsp;</th>
        <th>ccccccccccccccccccccc</th>
    </tfoot>
</table>

Возможно, вы бы использовали идентификатор таблицы вместо roomstable

Aksen P 17.06.2019 21:54
Ответ принят как подходящий

Если идея состоит в том, чтобы извлечь несколько идентификаторов кнопок в ячейке в массив, вам лучше использовать метод cell().node() вместо cell().data().

Это позволит вам захватить все кнопки, повернуть этот набор toArray() и извлечь значения атрибутов data-id:

var extras = $(roomstable.cell(closestRow,3).node())
   .find('span.btn')
   .toArray()
   .map(span => $(span).attr('data-id'));

да спасибо! Оно работает. Я просто вставил ), который вы забыли, в конце map.

undefined 18.06.2019 15:08

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