Jquery - 单击按钮时将表单上方的元素添加到另一个 div

标签 jquery

当单击button.additem 时,我尝试将表单上方的div (.item_desc) 删除到侧边栏。表单的所有处理都将是 php/ajax,我只需要购物车中商品的可视化表示,因为页面不会刷新。

表单和 div

    <div class="item">      
        <div class="item_desc">
            Item 1<br>
            Item 1 Desc
        </div>
        <form method="post">
            <button type="submit" name="submit" class="additem">Add To Cart</button>
            <input type="hidden" name="id" value="">
            <input type="hidden" name="name" value="">
            <input type="hidden" name="qty" value="">
            <input type="hidden" name="desc" value="">
            <input type="hidden" name="price" value="">
            <input type="hidden" name="img" value="">
        </form>
    </div>

Jquery

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(e) {
    $('.additem').click(function(e) {
        $(this).closest('.item_desc').appendTo('#sidebar')
    });

});
</script>

不太清楚我做错了什么,尝试使用parent()选择器和其他一些东西。任何帮助或更好的方法将不胜感激。

最佳答案

closest 选择元素最接近的匹配父元素。目标元素是父 form 元素的同级元素:

$(this).closest('form') // get the closest parent form element 
       .siblings('.item_desc') // get the sibling of the form element
       .appendTo('#sidebar');

您还有其他几个选项,例如:

$(this).closest('.item') // get the closest `.item` parent/ancestor
       .children('.item_desc') // get the `.item_desc` children  
       .appendTo('#sidebar');

另请注意,您应该使用 event 对象的 .preventDefault() 方法或通过返回虚假值(return false) 在处理程序中。

关于Jquery - 单击按钮时将表单上方的元素添加到另一个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26621086/

相关文章:

javascript - 如何使用jquery在div中添加span?

javascript - anchor 无法正常工作?

javascript - 在 HTML 上克隆片段 - 最佳实践

jquery - 如何在 jQuery 中使元素可拖动?

javascript - 基于 URL 参数的当前选项 "selected"

jquery - 使用jquery计算相对于容器的宽度和高度

javascript - pageY on div with overflow-y

javascript - 检查多个值的 jQuery 'if' 条件

jquery - Safari 不执行 jQuery 函数

jquery - Safari 5 中的灰度滤镜