循环遍历列表并根据if语句隐藏子li

时间:2013-06-19 07:48:33

标签: php jquery jquery-mobile loops each

我有一个jquery移动网站,它有一个动态的无序列表,它是从php中的postgres和while命令生成的。

页面准备好之后,我如何浏览每个列表块并阅读 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 个答案:

答案 0 :(得分:1)

如果按照this fiddle中的说明修复了无效的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();
});

请注意,这将假设你的李只有一个div。你可能想给这个div一个类,这样你就可以在find上做一个更好的选择器,但我不确定jQuery mobile是否会删除该类,因为它似乎删除了原始ID

如果您无法更改html结构,只需将.find更改为.next

Example