Циклический просмотр списка и скрытие дочернего элемента li на основе оператора if

У меня есть мобильный сайт jquery, в котором есть динамический неупорядоченный список, сгенерированный из postgres, и команда while в php.

После того, как страница готова, как я могу пройти через каждый блок списка и прочитать текст, который в span class="status" и если он равен 'D', то скрыть связанный class='edit_btn' во всплывающем меню.

Я так понимаю, это можно сделать в jQuery?

Пожалуйста, посмотрите мой пример, который поможет объяснить мой вопрос. http://jsfiddle.net/jamesil/wbcVy/1/

Это то, что я сделал до сих пор, но, поверьте, я иду в неправильном направлении

$('ul.bookings li').each(function() {
$(this).each(function(i) {
    var status = $('span.status',this).text();
    if (status = 'D') 
        $('ul.bookings ul li.edit_btn').hide();
});

1 ответ

Решение

Если вы исправите свою недействительную проблему HTML, как описано в этой скрипте, вы можете использовать следующий jQuery, чтобы скрыть кнопку редактирования:

$('#bookings li').filter(function() {
    return $(this).find('span.status').text() == 'D';
}).find('div').each(function() {
    //this is the bit where you need to find the id from the comment inserted by mobile jquery
    var divId = '#' + this.innerHTML.replace(/[^0-9]+/g, '') + '-popup';
    $(divId).find('li.edit_btn').hide();
});

Обратите внимание, что это предполагает, что в вашем li только один div. Возможно, вы захотите присвоить этому div класс, чтобы вы могли лучше выбирать селектор при поиске, но я не уверен, удалит ли jQuery mobile этот класс, как будто он удалил исходный идентификатор

Если вы не можете изменить структуру HTML, просто измените .find в .next

пример

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