0
<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>

仅当 li 标签具有子 ul 标签时,我才想附加一些文本。

4

4 回答 4

2

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

$('li:has(ul) > a').append('something');

小提琴

于 2014-09-06T12:53:26.917 回答
0
$('li a').text(function(i,v){
  if($(this).parent().children('ul').length){
    return v == 'append some text only here';
  }
});

或使用:has

$('li:has(ul)').children('a').text('append some text only here');
于 2014-09-06T12:53:41.973 回答
0
<!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>
于 2014-09-06T13:01:34.590 回答
0

看起来您想将文本放在 中<a>,因此一旦找到<li>s,请查找以下子项<a>

$('li:has(ul)').children('a').text('foobar');
于 2014-09-06T12:55:55.833 回答