将html剪切并粘贴到其他元素

时间:2017-01-21 18:14:18

标签: jquery html

我需要剪切并粘贴包含所有标签的文本,从主跨距到每个p标签中的标签元素。

<form>
    <p>
        <input...>  
        <label...>
        <span>Will trip the left<span>engin<span>e genge</span>rat</span>or only and connect external power to the left generator bus.
        </span>
    </p>
    <p>     
        <input ...>                                                                             
        <label></label><span>Will trip the left<span>engin<span>e genge</span>rat</span>or only and connect external power to the left generator bus.<br></span>
    </p>
    <input ...> 
</form>

我使用了这个命令:

$(document).find('form p').each( function(){ 
  $(this).find('span').detach().appendTo($(this).find('label'))
});

但我在该元素之外得到了其他跨度。我做错了什么?

我需要这样的东西:

<form>
    <p>
        <input...>  
        <label>
            <span>Will trip the left<span>engin<span>e genge</span>rat</span>or only and connect external power to the left generator bus.
            </span>
        </label>
    </p>
</form>

1 个答案:

答案 0 :(得分:0)

您需要使用children方法而不是find方法。 .children()方法与.find()的不同之处在于.children()只沿DOM树向下移动一个级别,而.find()可以遍历多个级别以选择后代元素(孙子等)。 (见https://api.jquery.com/children/

$(document).find('form p').each(function((){
  $(this).children('span').appendTo($(this).children('label'))
});