2

リストの子要素のテキストを取得しようとしています。しかし、親要素にしかアクセスできず、子要素にアクセスする方法がわかりません。

HTML

<ul class="nav nav-list">
   <li class="active">
      <a href="javascript:void(0);">
      <i class="icon-dashboard"></i>
      <span class="menu-text"> Dashboard </span>
      </a>
   </li>
   <li>
      <a class="dropdown-toggle" href="javascript:void(0);">
      <i class="icon-text-width"></i>
      <span class="menu-text"> posts </span>
      <b class="arrow icon-angle-down"></b>
      </a>
      <ul class="submenu">
         <li>
            <a href="javascript:void(0);">
            <i class="icon-text-width"></i>
            Add New Post
            </a>
         </li>
         <li>
            <a href="javascript:void(0);">
            <i class="icon-text-width"></i>
            Blog
            </a>
         </li>
         <li>
            <a href="javascript:void(0);">
            <i class="icon-desktop"></i>
            News Letter
            </a>
         </li>
      </ul>
   </li>
</ul>

そしてjQuery

$(document).on('click', '.nav-list > li', function(){
    $('.nav-list > li').removeClass('active');
    $(this).addClass('active');
    var text=$('.active >a >span').text();
    alert(text);
});

どんな助けでも大歓迎です。

4

3 に答える 3

2

これを試して:

$(document).on('click', '.nav-list a', function () {
    $('.nav-list li').removeClass('active');
    $(this).closest('li').addClass('active');
    var text = $(this).text();
    alert(text);
});

デモはこちら

于 2013-10-15T05:51:56.087 に答える
0

次のようにfind()を使用してみてください。

$(document).on('click', '.nav-list > li', function(){
    $('.nav-list > li').removeClass('active');
    $(this).addClass('active');
    var text=$('.active a').find('span').text();// use find()
    // or try var text=$('.active > a span').text();
    alert(text);
});

を取得したい場合はsubmenu ul text

if($(this).has('ul.submenu'))
{
    alert($.trim($(this).find('ul.submenu li').text()));
}

フィドルのデモ

于 2013-10-15T05:48:49.183 に答える
0
$('.nav-list a').live('click', function () {
    $('.nav-list li').removeClass('active');
    $(this).closest('li').addClass('active');
    var text = $(this).text();
    alert(text);
});
于 2013-10-15T05:55:25.203 に答える