附加特定标记的Jquery

附加特定标记的Jquery,jquery,html,Jquery,Html,我试图实现的是,我希望在div中附加所有内容,除了input按钮。有没有办法在Jquery中使用而不是方法?而且它只是针对我的第一个跨度块。下面是一个例子: JQuery HTML 马特 假街123号 詹姆斯 雷亚尔街123号 ​ 我认为这可以奏效: (function(){ $('.select_listing').on('click',function () { $('.saved_listing').append($(this).parents(".boxe

我试图实现的是,我希望在div中附加所有内容,除了input按钮。有没有办法在Jquery中使用
而不是
方法?而且它只是针对我的第一个跨度块。下面是一个例子:

JQuery HTML

马特
假街123号
詹姆斯
雷亚尔街123号
​

我认为这可以奏效:

(function(){

    $('.select_listing').on('click',function () { 
        $('.saved_listing').append($(this).parents(".boxes").find('span'));
    });

})();​
让我知道

编辑

在这里拉小提琴:

它似乎在移动元素,你想要吗?还是要复制元素

编辑2

更新小提琴以复制而不是移动元素:
(基本上我使用的是“克隆”方法)。

我认为这可以奏效:

(function(){

    $('.select_listing').on('click',function () { 
        $('.saved_listing').append($(this).parents(".boxes").find('span'));
    });

})();​
让我知道

编辑

在这里拉小提琴:

它似乎在移动元素,你想要吗?还是要复制元素

编辑2

更新小提琴以复制而不是移动元素: (基本上我使用了“克隆”方法)。

试试这个:

试试这个:


这就是你想要的吗

(function(){
    $('.select_listing').on('click',function () {
        // Create a copy of .boxes and append to .saved_listing
        var htmlContent = $(this).closest('.boxes').clone().appendTo('.saved_listing');
        // Remove input
        htmlContent.find('input').remove();
    });
})();

这就是你想要的吗

(function(){
    $('.select_listing').on('click',function () {
        // Create a copy of .boxes and append to .saved_listing
        var htmlContent = $(this).closest('.boxes').clone().appendTo('.saved_listing');
        // Remove input
        htmlContent.find('input').remove();
    });
})();

您的问题是这一行
.find('span').html()

此语句仅获取在其上查询的第一个跨距的html。在这种情况下,您需要循环

试试下面的方法

(function() {

    $('.select_listing').on('click', function() {
        var $this = $(this);
        var $span = $this.closest('div.boxes').find('span');
        var html = '';
        $span.each(function() {
            html += $(this).html();
        });
        $('.saved_listing').append(html);
    });

})();​

您的问题是这行
.find('span').html()

此语句仅获取在其上查询的第一个跨距的html。在这种情况下,您需要循环

试试下面的方法

(function() {

    $('.select_listing').on('click', function() {
        var $this = $(this);
        var $span = $this.closest('div.boxes').find('span');
        var html = '';
        $span.each(function() {
            html += $(this).html();
        });
        $('.saved_listing').append(html);
    });

})();​

您可以尝试以下方法:

$(".boxes").children().not("input[type='button']")
not()函数将过滤掉选择器中的元素。您可以尝试以下操作:

$(".boxes").children().not("input[type='button']")
not()函数将过滤掉选择器中的元素,只需在所有同级中运行
each()

编辑: 这样,您就不会不必要地上下移动

只需通过所有同级运行
each()

编辑:
这样,您就不会不必要地上下移动

我不明白你想做什么,你能说清楚一点吗。查询div和输入。将它们都转换为字符串。替换输入字符串的div中出现的内容。基本上,我想在我的
保存的
div列表中追加除输入按钮之外的所有内容。jQuery有一个
:not
操作符来反转选择器,因此在您的情况下
:not(input)
。我认为您只需要删除.html()为了达到你想要的结果。我不明白你想做什么,你能说清楚一点吗。查询div和输入。将它们都转换为字符串。替换输入字符串的div中出现的内容。基本上,我想在我的
保存的
div列表中追加除输入按钮之外的所有内容。jQuery有一个
:not
操作符来反转选择器,因此在您的情况下
:not(input)
。我认为您只需要删除.html()为了达到你想要的结果。我宁愿他们被复制,有什么方法吗?我宁愿他们被复制,有什么方法吗?