查找<a> in specified </a> <li> <a> and append <span> to </span></a> <a> jQuery</a> </li>

时间:2013-08-21 21:09:01

标签: jquery list append

这是我的设置:

<div id="nav">
  <ul>
    <li><a href="#">MENU ENTRY</a></li>
    <li><a href="#">MENU ENTRY WITH SUBMENU</a>
      <ul>
        <li><a href="#">SUBMENU ENTRY</a></li>
        <li><a href="#">SUBMENU ENTTY</a></li>
      </ul>
    </li>
  </ul>
</div>

现在我尝试使用jQuery实现以下功能:

  1. 检查“#nav li”是否有另一个“ul”
  2. 如果是这样,找到“a”-Tag并附加一个“span”-Tag到它
  3. 像这样:

    $("#nav li").has("ul").find("a").append('<span class="test">SOMETHING</span>');
    

    不幸的是,“span”-Tag附加到所有孩子“a”-Tags。

    我试图从其他“a”-Tags中删除该类,但它不起作用。

     $("#nav li ul li").find("a").remove(".test");
    

    这是小提琴:http://jsfiddle.net/LmDYg/6/

    帮助将不胜感激,谢谢!

3 个答案:

答案 0 :(得分:0)

$('#nav li>ul').parent().children('a').append('<span class="test">SOMETHING</span>');

答案 1 :(得分:0)

这应该对你有用

$('#nav li ul').prev('a').append('<span class="test">SOMETHING</span>');

<强> Updated fiddle

或者,您可以使用children()代替find()来仅选择<li>的直接后代

答案 2 :(得分:0)

我相信你说的是你只想将它添加到a li的直接孩子,在这种情况下你会使用children代替find

$("#nav li").has("ul").children("a").append('<span class="test">SOMETHING</span>');

http://jsfiddle.net/LmDYg/8/