Javascript Jquery附加方法 不在这里

Javascript Jquery附加方法 不在这里,javascript,jquery,jquery-selectors,jquery-append,Javascript,Jquery,Jquery Selectors,Jquery Append,我只想在li标记有子ul标记时附加一些文本。幸运的是,jQuery有一个:has()选择器 <ul> <li><a href="">not here</a></li> <li><a href="">append some text only here</a> <ul> <li><a href="">not here</a><

我只想在li标记有子ul标记时附加一些文本。

幸运的是,jQuery有一个
:has()
选择器

<ul>
  <li><a href="">not here</a></li>
  <li><a href="">append some text only here</a>
   <ul>
     <li><a href="">not here</a></li>
     <li><a href="">not here</a></li>
     <li><a href="">not here</a></li>
   </ul>
  </li>
  <li><a href=""></a>not here</li>
</ul>

或使用


看起来您想将文本放在
中,因此一旦找到
  • ,请查找
    中的子项

    
    
    • 不在这里
    $(文档).ready(函数(){ $('li')。具有('ul')。每个(函数(索引){ $(this.find('a').html(“test”); }); });
    要将文本添加到何处?在您的示例中,无
    li
    具有
    ul
    作为child@steo-事实上,其中一个是@adeneo抱歉,对我想在tag@user2333124-那就加上这个?编辑答案!这也会将文本添加到最后一个标记中。请检查小提琴。@user2333124-如果要替换文本,请这样说,不要询问如何添加文本!
    $('li:has(ul) > a').append('something');
    
    $('li a').text(function(i,v){
      if($(this).parent().children('ul').length){
        return v == 'append some text only here';
      }
    });
    
    $('li:has(ul)').children('a').text('append some text only here');
    
    $('li:has(ul)').children('a').text('foobar');
    
    <!DOCTYPE html>
    
    <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script src="https://code.jquery.com/jquery-2.1.1.js">
        </script>
    </head>
    <body>
        <ul>
            <li><a href="">not here</a></li>
            <li>
                <a href="">append some text only here</a>
                <ul>
                    <li><a href="">not here</a></li>
                    <li><a href="">not here</a></li>
                    <li><a href="">not here</a></li>
                </ul>
            </li>
            <li><a href=""></a>not here</li>
        </ul>
        <script>
            $(document).ready(function () {
                $('li').has('ul').each(function (index) {
                    $(this).find('a').html("test");
                });
            });
        </script>
    </body>
    </html>