jquery - 使用 .closest() 在之前插入 - 不起作用

标签 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>

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

我正在使用以下脚本:

    $("li.item a.link").each(function() {
        $(this).closest("div.inner").before(this);
    }); 

但我刚刚收到错误:“$(this).closest 不是函数”

为什么 .closest() 不起作用......它似乎经常被推荐。有其他方法可以实现这一目标吗?

非常感谢。

最佳答案

尝试 -

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

如果closest不适合您,这也可以工作 -

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

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

这两种方法都是通过查找最接近的父“li”元素,然后在其中搜索“内部”div 元素来实现的。您的原始代码使用 closest 函数搜索“div.inner”元素,该函数查找父元素,“div.inner”元素是链接的同级元素,因此它没有找到任何内容。

关于jquery - 使用 .closest() 在之前插入 - 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8122421/

相关文章:

javascript - jQuery Drop 事件未触发

machine-learning - 给定文本的最接近的维基百科页面

javascript - 无法使用 jQuery 获得正确的类值

javascript - 视频播放暂停按钮动画

javascript - 在文本框中单击复选框时获取复选框的计数和值,并取消选中该值应被删除并且文本框中的计数应减少

javascript - 如何在本地存储中创建和存储进度条的值

jQuery 最接近();不工作

php - jQuery:当一个较长的 $.ajax 请求待处理时,我可以发送和接收一个 $.ajax 响应吗?

php - SQL 插入跳过条目

mysql - 在插入语法问题或什么中选择子查询中的变量?