使用.closest()插入之前 - 不工作

And*_*iBM 5 jquery insert closest

我在列表中有以下标记(重复相同的列表格式):

    <li class="item">
        <div class="outer">
            <p>Some text</p>
            <div class="inner">Some div text</div>
        </div>
        <a class="link" href="#">Link</a>
    </li>
Run Code Online (Sandbox Code Playgroud)

我希望将a.link移动到每个列表项中的p和div.inner之间.

我使用以下脚本:

    $("li.item a.link").each(function() {
        $(this).closest("div.inner").before(this);
    }); 
Run Code Online (Sandbox Code Playgroud)

但我只是得到错误:"$(this).closest不是函数"

为什么.closest()不起作用...似乎经常被推荐.有没有不同的方法来实现这一目标?

非常感谢.

ipr*_*101 6

试试 -

$("li.item a.link").each(function() {
    $(this).closest('li').find(".inner").before(this);
});
Run Code Online (Sandbox Code Playgroud)

如果closest不适合你,这也会有效-

$("li.item a.link").each(function() {
    $(this).parent('li').find(".inner").before(this);
});  
Run Code Online (Sandbox Code Playgroud)

演示 - http://jsfiddle.net/MkD8j/2/

这两个工作都是通过找到最接近的父'li'元素,然后搜索'inner'div元素.您原始代码使用closest查找父元素的函数搜索'div.inner' 元素,'div.inner'元素是链接的兄弟,因此它没有找到任何东西.