Циклический просмотр списка и скрытие дочернего элемента 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