2010-05-24 3 views
0

У меня есть несколько строк таблицы, которые я бы хотел переключить на видимость. Они должны быть видимыми, если элемент данных, который я установил ранее, равен выбранному значению в форме. Это то, что у меня есть до сих пор:jquery: Переключить элементы на основе результата из функции

$('#category-selector').change(function(event) 
{ 
    var category_id = $(this).val(); 

    if(!category_id) 
    { 
     $('tr', '#table tbody').show(); 
    } 
    else 
    { 
     $('tr', '#table tbody').toggle(); 
    } 
}); 

Конечно, это просто переключает их. Дело в том, что я думал, что смог дать toggle функцию, которая решила бы, должна ли каждая строка быть включена или выключена, но оказывается, что я могу только дать ей логическое условие, которое было бы всем или ничего не имеющим ...

Итак, у меня есть эта функция:

function() 
{ 
    return $(this).data('category_id') == category_id; 
} 

Как я могу использовать, чтобы пройти через все строки и переключать их или выключить? Или есть лучший подход к этому? Что мне делать?

ответ

0

Тем не менее интересно, если есть лучше или гладкие или более быстрые способы сделать это, но это, как я сделал это сейчас:

else 
{ 
    $('tr', '#table tbody').each(function() 
    { 
     $(this).toggle( $(this).data('category_id') == category_id ); 
    }); 
} 
0
$('#category-selector').change(function(event) 
{ 
    var category_id = $(this).val(); 

    $('tr', '#table tbody').toggle($(this).data('category_id') == category_id); 
}); 
+0

но что будет оцениваться для каждой строки? Разве не $ (это) тег категории select здесь? – Svish

+0

Я не знаю, что # категория-селектор. Попробуй и посмотри? –

+0

'$ ('# category-selector')' является элементом '