Jquery追加方法

时间:2014-09-06 12:49:56

标签: javascript jquery jquery-selectors jquery-append

<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 个答案:

答案 0 :(得分:2)

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

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

FIDDLE

答案 1 :(得分: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');

答案 2 :(得分:0)

您希望将文字放在<a>中,因此一旦找到<li>,就会找到<a>

的子项
$('li:has(ul)').children('a').text('foobar');

答案 3 :(得分: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>