Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.01.2019, 19:18
Профессор
Отправить личное сообщение для giwuf Посмотреть профиль Найти все сообщения от giwuf
 
Регистрация: 16.05.2017
Сообщений: 165

Почему атрибут элемента отображается с запаздыванием (при 2ой итерации показывается
Есть таблица wpDataTables с фильтром select с выбором по городам.

Хочу в переменной получать название городов для последующего вывода на странице, но сталкиваюсь с невозможностью получить атрибут элемента title в силу того, что плагин при поиске посылает ajax запрос на сервер и возвращает данные и потому не работает DOM (в консоли видно, а в коде страницы нет), хотя сам html код кнопки я отлавливаю таким образом:

jQuery.noConflict();
jQuery(window).load(function(){
  wpDataTables.table_1.addOnDrawCallback(
  function(){
    var newcity = jQuery('#table_1_1_filter_sections button.dropdown-toggle').attr('title');

    var city = jQuery('#table_1_1_filter button.dropdown-toggle')[0];
    var title = city.getAttribute("title");
    console.log(newcity,city,title);


Здесь получаю в консоли только city в таком виде
<button type="button" class="btn dropdown-toggle btn-default" 
data-toggle="dropdown" role="button" title="Кемерово" aria-expanded="false">
<span class="filter-option pull-left">Кемерово</span>&nbsp;
<span class="bs-caret"><span class="caret"></span></span>
</button>


При
var city = jQuery('#table_1_1_filter button.dropdown-toggle');


Получаю в консоли
a.fn.init [button.btn.dropdown-toggle.btn-default, selector: "#table_1_1_filter button.dropdown-toggle", prevObject: n.fn.init(1), context: document]


Но, ничего не могу сделать с этой переменной, методы find, text, html, innerHTML не хотят с ней работать, а при преобразовании в toString() получаю в консоли [object HTMLButtonElement]. Как можно решить?

UPD: Вот что удалось обнаружить - код
var newcity = jQuery('#table_1_1_filter_sections button.dropdown-toggle').attr('title');


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

Какие могут быть мысли?

Последний раз редактировалось giwuf, 09.01.2019 в 22:00. Причина: появилась новая информация
Ответить с цитированием
  #2 (permalink)  
Старый 09.01.2019, 22:44
Профессор
Отправить личное сообщение для giwuf Посмотреть профиль Найти все сообщения от giwuf
 
Регистрация: 16.05.2017
Сообщений: 165

Не нашел ничего лучше, как установить задержку на 0,5сек. По крайней мере работает


Не нашел ничего лучше, как установить задержку на 0,5сек. По крайней мере работает

setTimeout(function() { 
city = jQuery('#table_1_1_filter button.dropdown-toggle').attr("title"); jQuery('.city').text("г. "+city); }, 500);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как вернуть состояние DOM элемента до изменения? Artur_Hopf Общие вопросы Javascript 2 22.11.2018 09:21
Как получить значение которые были внесенны в td? Tomat Events/DOM/Window 3 01.08.2018 14:32
Найти максимальное и минимальное значение в элементах DOM smart-create Events/DOM/Window 17 11.07.2017 13:36
Акардион меню из чекбоксов и списка, как сделать подсветку текущего элемента OliLoi jQuery 0 08.11.2016 08:15
Выводить значение раньше переменных Гробовщик Общие вопросы Javascript 11 10.09.2013 08:42