2014-11-19 3 views
0

Я пытаюсь отфильтровать мою страницу по значению. Таким образом, всякий раз, когда значение существует в определенной строке, оно будет фильтровать эту строку. Проблема с моим кодом - это если флажок установлен, даже не срабатывает. Я знаю это, потому что тестовый протокол сообщения журнала не отображается. Я не получаю никаких синтаксических ошибок в консоли, но не вижу, что флажок установлен. Я нахожусь в JavaScript. Когда флажок установлен, не должен загореться следующий код?фильтр по флажку значение javascript не работает

var $row = $("#data tr"), 
    $filter_poweron = $("#poweron"); 

if($filter_poweron.checked) { 
console.log('test'); 
    var filterText_poweron = $filter_poweron.val().toLowerCase(); 
    $row.each(function() { 
     var $row_d = $(this); 
     $row_d.toggle($row_d.text().toLowerCase().indexOf(filterText_poweron) > -1); 
    }); 
} 

<br><input type="checkbox" id="poweron" value="1O">PoweredOn <input type="checkbox" id='poweroff' value="0F"> PoweredOff 

ответ

1
if($(filter_poweron).is(':checked') { 
console.log('test'); 
    var filterText_poweron = $filter_poweron.val().toLowerCase(); 
    $row.each(function() { 
     var $row_d = $(this); 
     $row_d.toggle($row_d.text().toLowerCase().indexOf(filterText_poweron) > -1); 
    }); 
} 
+1

': checked' должно быть' ': checked'' – Tomanow

4

$filter_poweron - объект jQuery. Объекты jQuery не имеют свойства checked.

Вы можете получить checked свойство элемента DOM с помощью .prop():

var $row = $("#data tr"), 
    $filter_poweron = $("#poweron"); 

if ($filter_poweron.prop('checked')) { 
    console.log('test'); 
    var filterText_poweron = $filter_poweron.val().toLowerCase(); 
    $row.each(function() { 
     var $row_d = $(this); 
     $row_d.toggle($row_d.text().toLowerCase().indexOf(filterText_poweron) > -1); 
    }); 
} 

Есть другие способы, чтобы увидеть, если флажок элемент проверяется:

$filter_poweron[0].checked; 
$filter_poweron.is(':checked'); 
$filter_poweron.filter(':checked').length; 
0

использовать изменение Jquery событие и проверить, не проверено ли его или нет

$(filter_poweron).change(function() { 
    if(this.checked) { 
     //Do stuff 
    } 
}); 
Смежные вопросы