-2

forループを使用しています。関数は機能していますが、コンソールにもエラーがスローされています。

$('input').keyup(function (e) {
    if (e.keyCode == 13) {
        var visible = $('ul').find('li span').filter(function () {
            if ($(this).css('display') != 'none') {
                return this
            }
        }).get();
        console.log(visible.length)
        for (i = 0; visible.length; i++) {
            console.log(visible[i].id)
        }
    }
})

<input type="text" />
<ul>
  <li> <span id="one">one</span> </li>
  <li> <span id="two">two</span> </li>
  <li> <span id="three" style="display:none">two</span> </li>
</ul>
4

2 に答える 2

5

変化する

for(i=0; visible.length;i++ ){

for(i = 0; i < visible.length;i++){
于 2013-08-01T11:45:26.367 に答える
2

これを正しく行うための良い方法を次に示します。

$('input').keyup(function (e) {
    if (e.keyCode == 13) {

        var $visible = $('ul').find('li span').filter(function () {
            return $(this).css('display') != 'none';
        }).get();

        console.log($visible.length);

        $.each($visible, function (index, value) {
            console.log($(value)[0].id);
        });
    }
});

フィドル

于 2013-08-01T11:50:45.763 に答える