如何在 ul 中获取 lis 的元素

How to get elements of lis inside an ul

大家好,我正在尝试获取 <li> 的 ID,但未定义,我正在使用 laravel。

这是我的看法

<ul class="nav nav-pills nav-stacked" id="listas">
                        @foreach(Auth::user()->empresas as $empresa)
                            <li>
                                <a href="#" class="seleccion" id="{{$empresa->id}}" data-id="{{$empresa->id}}"
                                   data-nombre="{{$empresa->nombre}}">{{$empresa->nombre}}
                                    <span class="pull-right text-red item{{$empresa->id}}"></span></a>
                            </li>
                        @endforeach

 </ul>

我的js

   $(document).on('click', '.seleccion', function () {
    $('#listas').find('li').each(function () {
      console.log($(this).attr('id'))
    })
  })

由于您的 li 实际上没有 id 属性,您应该在 lia 子级中查找它,如下所示.

$(document).on('click', '.seleccion', function () {
    $('#listas').find('li > a').each(function () {
        console.log($(this).attr('id'));
    });
});

您尝试从 <li> 元素中读取一个不存在的属性。

@foreach(Auth::user()->empresas as $empresa)
  <li id="myId">  <--- HERE
    <a href="#" class="seleccion" id="{{$empresa->id}}" data-id="{{$empresa->id}}"
     data-nombre="{{$empresa->nombre}}">{{$empresa->nombre}}
       <span class="pull-right text-red item{{$empresa->id}}"></span>
    </a>            
  </li>
@endforeach

问候

就像我没有 id 你必须改变你的标记或改变 js

  $(document).on('click', 'a.seleccion', function () {
      console.log($(this).attr('id'));
  });

您可以使用 $(this)

 $( ".seleccion" ).click(function() {
        var id = $(this).attr('data-id'));
        console.log(id);
 });